2016-11-30 69 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) –

相关问题