1

我创建了一个用户控件,然后我有一个选项卡控件,其中有一个包含 2 个按钮的选项卡页,当单击按钮 1 时,它会创建一个新选项卡页,并且用户控件通过添加到其控件中

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 异常。我不知道该怎么做,或者如何在标签页的用户控件中找到控件......请见鬼

4

2 回答 2

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";
  }
}
于 2013-05-09T17:09:50.073 回答
0
UserControl uc = NameTabPages.Controls[0] as UserControl; // it's work
于 2013-12-21T04:12:48.140 回答