我想从父窗体中的其他窗体添加新窗体。Winforms从子窗体添加tabPage到父窗体
我的父母表格是MainWindow
,此表格有TabControl
。 我有孩子的形式ChildForm
当我点击儿童表单按钮,我想要从添加新的tabpage。
我尝试在ChildForm
private MainWindow mainWindow;
public List(MainWindow form)
{
this.mainWindow = form;
}
private void createButton_Click(object sender, EventArgs e)
{
TabPage tabPage = new TabPage("ASD");
mainWindow.MainTabControl.TabPages.Add(tabPage);
}
创建构造函数依赖,这将抛出System.NullReferenceException
!
我也尝试在MainWindow
中创建访问者女巫将返回mainTabControl
访问MainWindow
但也不起作用。
public static TabControl MainTabControl
{
get {
MainWindow self = new MainWindow();
return self.mainTabControl;
}
}
这不行,因为我创建新的参考,这是问题。
我尝试了2个例子,两者都不工作,我知道whay不工作!
任何人都知道任何其他操作如何解决这个问题?
你的第一个例子,虽然它不是一个最佳实践,应该工作。你可以使用调试器来找出那个表达式中的null是什么? _mainWindow.MainTabControl.TabPages.Add(tabPage); _ – Steve
'null'因为我从不创建'MainWindow'类的实例。 – Ivan
Controls的默认'Modifiers'值是** Private **,这意味着您无法从其他Form访问TabControl。这个例外几乎肯定是因为你试图通过一个属性将其公开。您可以简单地将TabControl的Modifiers值更改为Public或Internal,然后使用它的实际名称,如:'mainWindow.tabControl1.TabPages.Add(tabPage);' –