如何从我的主窗体调用设置表单中的函数?

时间:2011-09-18 22:39:26

标签: c# winforms

我的项目中有两个表单,

  1. 主要表格
  2. 设置表单
  3. 我需要在设置表单中为主要表单调用一个方法。我的主窗体有启动画面(在构造函数中)所以我无法创建主窗体的实例来调用该方法。

    有没有办法在不调用main form的构造函数的情况下调用该函数?或者还有其他方法可以实现吗?

3 个答案:

答案 0 :(得分:0)

您可以将Main表单作为构造函数参数发送到Settings表单(假设从Main调用Settings)。

更好的方法是将Func<...>Action<...>发送到“设置”表单,然后让它调用它。

...

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


...
    _myAction(5);

...

答案 1 :(得分:0)

您可以设置一个单例类,其中包含您需要从表单中调用的常用函数。

c#中单身人士的一些信息 http://msdn.microsoft.com/en-us/library/ff650316.aspx

答案 2 :(得分:0)

在您的主窗体中保留对SettingForm实例的引用。

SettingsForm mySettingsForm;

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

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

创建MainForm实例时,创建一个SettingsForm实例并将其传递给MainForm。除非您调用Show或ShowDialog方法,否则SettingsForm将不可见。

SettingsForm settingsForm = new SettingsForm();
MainForm myMainForm = new MainForm(settingsForm);
myMainForm.Show();