2013-05-15 50 views
0

我在窗体中有几个选项卡。每个选项卡都有一个文本框。当我进入tabpage1时,我设法将焦点设置在textBox1上。当我在tabpage1中按下按钮时,我跳转到控制器中的一个随机选项卡。我现在想要的是将焦点设置在活动页面上的文本框中。我曾尝试使用tabpage_Enter事件,但它似乎不工作。我的代码如下所示:当在C#中更改标签页时,将焦点从文本框更改为另一个?

private void tabPage2_Enter(object sender, EventArgs e) 
    { 
     textBox2.Select(); 

    } 

有什么建议吗?

回答

2

我认为你需要使用的TabControl代替_Enter的SelectedIndexChanged事件,使用Enter事件,焦点将改为每TextBox2中光标进入TabPage的控制时间。

+0

谢谢,它与这个代码一起工作:tabControl_SelectedIndexChanged(object sender,EventArgs e) { switch(tabControl.SelectedIndex) { case 0:textBox1.Focus ); 休息; 案例1:textBox2.Focus(); 休息; // } } – Praise

0

您可以使用Focus()方法将焦点置于文本框中。我可能会设置tabPage_Enter事件。

private void tabPage_Enter(object sender, EventArgs e){ 
{ 
    var tab = sender as tabPage; 
    if(!tab.Focused) tab.focus(); 
} 
+0

我已经尝试过textBox2.Focus()也。我不会工作。为什么我应该使用var tab = sender作为tabPage等? – Praise

+0

作为tabPage,var tab = sender使代码通用于所有将tabPage_Enter分配为事件的选项卡。这种方式你不必为每个标签写一个单独的事件 – Wusiji

相关问题