Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как обратиться к методам экземпляра класса формы из внешнего класса

31K
21 августа 2007 года
sergant45
2 / / 21.08.2007
Начинаю переход на .NET и С#.
Возник вопрос.
Есть главная форма Form1, в классе которой реализован нек. метод, например, SomeMetod1()
Далее мы создаем еще один класс в том же пространстве имен, например,
 
Код:
public class MyClass()
{
 // и определяем метод
  public Metod1()
   {
        Form1.SomeMetod1(); // данный код вызывает ошибку (нужно создать ссылку на экземпляр для нестатичного объекта)
   }
}

но если мы пишем
 
Код:
Form f1 = new Form1();
то создаем еще один экземпляр главной формы, ссылку на кот. и получает f1. Как обратиться к методам уже созданного экземпляра формы (получить на него ссылку)?

Код типа:

 
Код:
Form frmMain = Application.OpenForms["frmMain"];
TextBox txb1 = (TextBox)frmMain.Controls["txbName"];
txb1.Text = "test"; // вызывается исключение NullReferenceException

txb1 не получает адреса контрола главной формы

Все это справедливо и при попытке получить доступ к контролам и методам главной формы из подчиненной (Parent-Child).

Подскажите, пожалуйста, способ выхода из такой ситуации.
31K
21 августа 2007 года
sergant45
2 / / 21.08.2007
Нашел 2+ способа

1) перегрузка конструктора создаваемой подчиненной формы (или экз. произв. класса) для передачи ссылки экземпляра главной формы, в конструктор передаем this

2) создание статического метода главной формы, возвращающего ссылку на созданный экземпляр формы (this)

Еще способ через коллекции контролов...
frmMain frmMainObj = Application.OpenForms["frmMain"];
frmMainObj.txbFromMainForm.Text = "test";
32K
27 августа 2007 года
Destroer
2 / / 27.08.2007
Form1.ActiveForm.Controls.Add(PictureBox);

этой строкой добавляется контрол на существующую активную форму, думаю несложно догадаться как можно это испрользовать.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог