從主文件訪問子窗口的對象很容易,因爲我們必須創建子窗口。因此,有這樣的事情:在其他.cs文件中訪問主窗體對象
SubForm subform = new SubForm();
if (subform.ShowDialog() == DialogResult.OK)
{
text = subform.textBox1.Text;
//...
}
但我有一些麻煩與子CS文件編輯組合框(位於主窗口中)。我不能簡單地創建一個新的主窗口。我已經編輯的Program.cs文件:
static class Program
{
public static MainForm mainform; //main window reference
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(mainform = new MainForm());
}
}
現在我可以訪問該組合框:
Program.mainform.comboCurves.Items.Add("test");
是不是這方面的任何更好的解決方案?
當然:在組合和想要影響它的代碼之間插入一個(或多個)適當的抽象層。這實在太開放以提出具體的建議。 – Jon
通常這是http://codereview.stackexchange.com/的問題。但是創建表單的靜態變量並不是一個很好的模式。爲什麼'sub-cs'文件要創建組合框項目? –
可能重複的[如何在另一個窗體中調用mainform方法在用戶控件C#](http://stackoverflow.com/questions/17672276/how-to-call-mainform-method-in-another-form-in-usercontrol- c-sharp) – mbeckish