2016-11-30 60 views
-1

我有一個WinForm與兩個TextBox es。我想在用戶按下後輸入將焦點從第一個TextBox移到下一個。我的代碼如下所示:按下輸入文本框將焦點移動到下一個文本框,而不選擇文本

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.Enter) 
    { 
     e.Handled = true; 
     SomeCustomMethod(); 
     textBox2.Focus(); 
    } 
} 

現在如果輸入用戶已按之前輸入一些文字,它首先選擇的全部文本,如下圖所示:

enter image description here

然後按輸入第二次,焦點轉移到下一個TextBox。我不想那樣。我希望它可以直接進入下一個TextBox,而不必選擇第一個TextBox的全部文本。我還用KeyUp事件對它進行了測試,結果沒有奏效。幫幫我!

+1

什麼是'SomeCustomMethod()'做什麼?我不記得在丟失焦點時只是選擇全文。 – bixarrio

+1

使用你的代碼(減去somecustommethod調用)雷移動到下一個框按下輸入.....並突出顯示box2 ..不box1 ... – BugFinder

+0

我與BugFinder一樣,我用除了「SomeCustomMethod( )「,它按照你的想法工作。 –

回答

1

TextBox中的文本只能在焦點位置選擇。 當你說:

「現在,如果用戶已經按enter之前輸入一些文字,它首先選擇整個文本」

那麼你大抵相當自己做。請打控制 + ˚F和搜索整個項目爲:

your_textbox_Name.Select 

然後刪除此行,你的幽靈般的自動選擇應消失

+0

我不使用your_textbox_Name.Select。我只是看着我們的庫的SomeCustomMethod(),我也沒有看到這樣的方法。 –

+0

您的項目中沒有任何地方將焦點放在了文本框上並進行了選擇?你使用的是什麼操作系統?我在網上查找,但無法找到像自動選擇文本的東西。 –

+0

最近的是這[post](https://channel9.msdn.com/Forums/TechOff/410195-C--TextBox--How-to-prevent-select-OnFocus) –

相關問題