2011-02-23 53 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