Как вызвать функцию в форме настроек из моей основной формы? - PullRequest
1 голос
/ 19 сентября 2011

У меня есть две формы в моем проекте,

  1. Основная форма
  2. Форма настроек

Мне нужно вызвать метод из основной формы длясобытие в форме настроек.Моя основная форма имеет заставку (в конструкторе), поэтому я не смог создать экземпляр главной формы для вызова метода.

Есть ли способ вызвать функцию без вызова конструктора основной формы?Или есть какой-то другой способ, которым я могу это реализовать?

Ответы [ 3 ]

0 голосов
/ 19 сентября 2011

Вы можете настроить одноэлементный класс, который содержит ваши общие функции, которые вам нужно вызывать из ваших форм.

Некоторая информация о Singletons в c # http://msdn.microsoft.com/en-us/library/ff650316.aspx

0 голосов
/ 19 сентября 2011

В основной форме сохраните ссылку на экземпляр SettingForm.

SettingsForm mySettingsForm;

public MainForm(SettingsForm settingsForm)
{
    _mySettingsForm = settingsForm;
}

private void CallSettingsFormMethods()
{
   _mySettingsForm.CallAnyPublicMethod();
}

При создании экземпляра MainForm создайте экземпляр SettingsForm и передайте его в MainForm. SettingsForm не будет виден, если вы не вызовете методы Show или ShowDialog.

SettingsForm settingsForm = new SettingsForm();
MainForm myMainForm = new MainForm(settingsForm);
myMainForm.Show();
0 голосов
/ 19 сентября 2011

Вы можете отправить форму Main в форму Settings в качестве аргумента конструктора (при условии, что Settings вызывается из Main).

Лучшим способом было бы отправить Func<...> или Action<...> в форму «Настройки» и позволить ей вызывать это вместо этого.

...

public Settings(Action<int> myAction)
{  
    _myAction = myAction;
}


...
    _myAction(5);

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...