从主文件访问子窗口的对象很容易,因为我们必须创建子窗口。因此,有这样的事情:在其他.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