从选项卡控件内的winform获取控件
本文关键字:控件 winform 获取 选项 | 更新日期: 2023-09-27 18:28:07
我有一个选项卡控件,在第一个选项卡中有一个文本框。我想要的是,当选择第一个选项卡时,文本框将自动聚焦。
我可以访问选项卡选择的索引更改事件,但不能访问要自动聚焦的文本框。有什么想法吗?
在添加到选项卡时,我正在这样做:
capture = new CaptureForm(photoGrapherName);
capture.TopLevel = false;
capture.Visible = true;
capture.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
capture.Dock = DockStyle.Fill;
tabControl1.TabPages[0].Controls.Add(capture); capture = new CaptureForm(photoGrapherName);
capture.TopLevel = false;
capture.Visible = true;
capture.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
capture.Dock = DockStyle.Fill;
tabControl1.TabPages[0].Controls.Add(capture);
这是我的标签更改事件:
private void TabControl1_SelectedIndexChanged(Object sender, EventArgs e)
{
switch(tabControl1.SelectedIndex)
{
case 0:
//I want to access the textbox from here.
break;
case 1:
break;
}
}
CaptureForm有一个名为"ClientCode"的文本框,当任何人选择"捕获"选项卡时,我想让这个文本框成为焦点。
您是否尝试使用SelectedIndexChanged事件?如果您谈论TabControl,我们可以在开关案例的帮助下使用selectedIndexChanged事件来完成此操作。。
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
switch ((sender as TabControl).SelectedIndex)
{
case 0:
//nothing to do.. or you can, if you want.. :)
break;
case 1:
tbFName.Focus();
break;
}
}
更新
当你修改时,我知道你正在动态地向TabPage添加控件,所以使用下面的片段来获得动态添加的TextBox
public Form1()
{
InitializeComponent();
TextBox tb = new TextBox();
tb.Name = "dynamic";
tb.Text = "Text dynamic";
tabControl1.TabPages[1].Controls.Add(tb);
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
TabControl tc = (sender as TabControl);
switch (tc.SelectedIndex)
{
case 0:
break;
case 1:
Control[] temp = tc.TabPages[1].Controls.Find("dynamic", true);
if (temp.Length == 1)
{
(temp[0] as TextBox).Focus();
}
break;
}
}
希望它对你有意义!