我在我的項目中兩種形式,如何從我的主窗體調用設置窗體中的函數?
- 主要形式
- 設置形式
我需要調用從主窗體的方法中的設置形式的事件。我的主表單具有啓動畫面(在構造函數中),所以我無法創建主窗體的實例來調用該方法。
有沒有什麼辦法可以在不調用主窗體構造函數的情況下調用該函數?或者還有其他方法可以實施嗎?
我在我的項目中兩種形式,如何從我的主窗體調用設置窗體中的函數?
我需要調用從主窗體的方法中的設置形式的事件。我的主表單具有啓動畫面(在構造函數中),所以我無法創建主窗體的實例來調用該方法。
有沒有什麼辦法可以在不調用主窗體構造函數的情況下調用該函數?或者還有其他方法可以實施嗎?
您可以將Main窗體作爲構造函數參數發送到Settings窗體(假定Settings是從Main調用的)。
更好的方法是將Func<...>
或Action<...>
發送到設置窗體,讓它調用它。
...
public Settings(Action<int> myAction)
{
_myAction = myAction;
}
...
_myAction(5);
...
您可以設置一個單例類,它包含您需要從窗體調用的常用函數。
對單身人士的一些信息在C# http://msdn.microsoft.com/en-us/library/ff650316.aspx
在主窗體保持參考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();
我是這個C#世界的新手。你可以再解釋一下嗎?動作/函數表示我的主要形式的方法? myAction是主窗體的實例嗎?請幫助 – Deepa
@Deepa:'myAction'是您希望設置表單調用的方法。它類似於C中的函數指針,如果這是你的背景。 –