2008-10-07 4 views
3

Что я хочу сделать, это настроить фокус на определенный элемент управления (в частности, TextBox) на закладке при выборе этой закладки.Фокусировка на элементе управления при переключении вкладок

Я попытался позвонить Focus во время выбранного события содержащего элемента управления вкладки, но это не работает. После этого я попытался вызвать фокус во время события VisibleChanged самого элемента управления (с проверкой, чтобы я не фокусировался на невидимом элементе управления), но это тоже не работает.

Поиск на этом сайте, я столкнулся с этим question, но это тоже не работает. Хотя после этого я заметил, что вызов Focus элемента управления делает его ActiveControl.

ответ

8

Я сделал это, и это, кажется, работает:

Ручка SelectedIndexChanged для tabControl. Проверьте, если tabControl1.SelectedIndex == та, которую я хочу и вызова textBox.Focus();

Я использую VS 2008, кстати.


Что-то вроде этого работал:

private void tabControl1_selectedIndexChanged(object sender, EventArgs e) 
{ 
    if (tabControl1.SelectedIndex == 1) 
    { 
     textBox1.Focus(); 
    } 
} 
+0

Спасибо, это сработало. Знаете ли вы, почему он не работает в событии Selected, но в событии SelectedIndex? – 2008-10-07 18:45:01

1

Попробуйте TabPage.Enter что-то вроде

 
     private void tabPage1_Enter(object sender, EventArgs e) 
     { 
      TabPage page = (TabPage)sender; 
      switch (page.TabIndex) 
      { 
       case 0: 
        textBox1.Text = "Page 1"; 
        if (!textBox1.Focus()) 
         textBox1.Focus(); 

        break; 
       case 1: 
        textBox2.Text = "Page 2"; 

        if (!textBox2.Focus()) 
         textBox2.Focus(); 

        break; 
       default: 
        throw new InvalidOperationException(); 
      } 
     } 
Смежные вопросы