我想從父窗體中的其他窗體添加新窗體。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);' –