在使用用户控件创建的选项卡中查找控件

本文关键字:控件 选项 查找 创建 用户 | 更新日期: 2023-09-27 18:12:58

我已经创建了一个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选项卡内的文本框中,我用下面的代码实现它,

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

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

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

,但它仍然返回一个运行时错误,说转换usercontrol不能应用于文本框。我不知道那是什么意思…请帮帮我……我也试着把控件[1],但它返回了一个运行时错误,其中是一个outtofbounds异常。我不知道该怎么做,或者如何在选项卡中找到用户控件内部的控件…请临床上妊娠

在使用用户控件创建的选项卡中查找控件

如果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";
  }
}
UserControl uc = NameTabPages.Controls[0] as UserControl; // it's work