我的项目中有两个表单,
我需要在设置表单中为主要表单调用一个方法。我的主窗体有启动画面(在构造函数中)所以我无法创建主窗体的实例来调用该方法。
有没有办法在不调用main form的构造函数的情况下调用该函数?或者还有其他方法可以实现吗?
答案 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();