2013-05-15 49 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

相關問題