2011-02-23 51 views
0

我的tabpage1與usercontrol1和tabpage2與usercontrol2。如何在tabpages之間傳遞值並激活其他

我想將int ID從usercontrol1(tabpage1)傳遞給usercontrol2(tabpage2)並激活tabpage2。

我應該使用哪些tabpage屬性和方法? 非常感謝

回答

1

一般來說,控件不應該需要知道兄弟控件 - 他們只知道他們的父母和任何孩子(明顯的例外是單選按鈕控件...)。其結果是,包含您的用戶控件的形式應該是負責從一個傳遞值到其他,例如:

usercontrol2.ID = usercontrol1.ID 

如果需要發生,因爲用戶已經用usercontrol1互動,提供事件可用於執行此操作:通過調用與標籤

// this is probably automatically handled by the designer 
usercontrol1.Click += new EventHandler(usercontrol1_Click); 

void usercontrol1_Click(object sender, EventArgs e) 
{ 
    usercontrol2.ID = usercontrol1.ID 
} 

您可以激活選項卡控件的特定標籤要激活:

tabControl.SelectTab(tabMyTab2); 

這也可以進入上面的事件處理程序。 (它不能從一個不同的線程調用,所以把它放在一個事件處理程序將避免任何風險發生。)

+0

我的主窗體在運行時加載usercontrol1,我如何調用主tabcontrol激活usercontrol1中的選項卡(讓我們說button1_clck事件) – Kiddo 2011-02-23 00:32:59

+0

@Kiddo我不知道你的標籤控件和你的用戶控件在這裏是如何相關的 - 如果你使用標準的標籤控件,那麼我的答案的第二部分將在任何事件處理程序中工作。如果您使用非標準選項卡控件,則需要提供更多信息。 – Zooba 2011-02-23 01:42:33

+0

我的mainform.cs與包含一堆用戶控件的'tabs'文件夾位於同一根目錄下。我有問題與usercontrol1訪問mainform.tabControl事件處理程序,因爲它被設置爲私人 – Kiddo 2011-02-23 02:54:04