我建議你及時更新一些「當前狀態」變量,所以你總是有一個指針到所選標籤頁,它的子控件(在這裏討論一個標籤,記事本仿真的情況下:一個TextBox)。我更傾向於將保留的TabPage <的軌道>使用字典,以避免投的文本框,如果他們使用的是TabPage.Controls路徑訪問文本框的連接:下面的代碼假定你有一個名爲「tabControl1在窗體上的TabControl:
Dictionary<TabPage, TextBox> dct_TabPageToTextBox;
int tabCnt = 1;
TabPage currentTabPage;
TextBox currentTextBox;
因此,當你在運行時創建的每個新的TabPage調用是這樣的:
private void AddNewTabPage()
{
if (dct_TabPageToTextBox == null) dct_TabPageToTextBox = new Dictionary<TabPage, TextBox>();
currentTabPage = new TabPage("Page " + tabCnt.ToString());
tabControl1.TabPages.Add(currentTabPage);
currentTextBox = new TextBox();
dct_TabPageToTextBox.Add(currentTabPage, currentTextBox);
currentTabPage.Controls.Add(currentTextBox);
currentTextBox.Dock = DockStyle.Fill;
currentTextBox.Text = "sample text for page " + tabCnt.ToString();
tabControl1.SelectedTab = currentTabPage;
tabCnt++;
}
由於最終用戶更改所選的TabPage你可以簡單地更新當前的狀態變量,如這個:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
currentTabPage = tabControl1.SelectedTab;
currentTextBox = dct_TabPageToTextBox[currentTabPage];
MessageBox.Show("text in current Tab Page is : " + currentTextBox.Text);
}
所以,現在有一個由只適用於currentTextBox你的菜單選項調用的代碼。
最好,比爾
我只使用你的代碼的第15行,tabControl.SelectedTab.Controls [0](獲得正確的控制)是我所需要的。完美(現在)。謝謝(對你和其他人)。 – Zach 2009-11-17 22:09:44