在使用usercontrol创建的标签页中查找控件

时间:2013-05-09 16:48:28

标签: c# winforms user-controls controls tabbed

我创建了一个usercontrol,然后我有一个tabcontrol,其中有一个包含2个按钮的标签页,当点击button1时,它会创建一个新的标签页,并通过

将用户控件添加到其控件中
tab = new TabPage();
UserControl1 uc = new UserControl1();           
tab.Controls.Add(uc);
tab.Name = "0";
tab.Text = tab.Name;
tabControl1.TabPages.Add(tab);

现在当我点击button2时,它应该将文本放在刚刚创建的usercontrol-tabpage的文本框中,我用这段代码实现了它,

TextBox sel = (TextBox)tabControl1.TabPages["0"].Controls["textBox1"];
sel.Text = "ssss";

但是它返回一个运行时错误,说它找不到所说的控件,所以我试过

TextBox sel = (TextBox)tabControl1.TabPages["0"].Controls[0];
sel.Text = "ssss";

但它仍然返回运行时错误,表示转换用户控件无法应用于文本框。我不知道这意味着什么..请帮助我...我也试过放入Controls [1],但它返回了一个运行时错误,其中有一个OutofBounds异常。我不知道该怎么做,或者如何在tabpage页面中找到usercontrol中的控件...请帮助

2 个答案:

答案 0 :(得分:1)

有点不清楚TextBox是否已存在于UserControl中,所以我认为它确实存在。在这种情况下,您必须首先引用UserControl:

UserControl1 uc1 = tabControl1.TabPages["0"].Controls[0] as UserControl1;
if (uc1 != null) {
  TextBox sel = uc1.Controls["textBox1"] as TextBox;
  if (sel != null) {
    sel.Text = "ssss";
  }
}

答案 1 :(得分:0)

UserControl uc = NameTabPages.Controls[0] as UserControl; // it's work