禁用多行文本框中的新行,并将下一个焦点设置为输入键

时间:2016-09-27 10:41:55

标签: c# winforms

我想在多行文本框中禁用新行。我正在使用多行文本框,因为该字段包含很长的描述。另外,我在下面的文本框中设置了下一个焦点:

if (e.KeyChar == 13)
   SendKeys.Send("\t");

我在Keypress事件中这样做,但它的作用是在文本框中设置一个新行。此外,当我在选择文本时按Enter键时,它会清除该框并创建一个新行。

非常感谢任何帮助。

我想阻止新行并将下一个焦点设置在Enter键上。

2 个答案:

答案 0 :(得分:2)

我建议您使用KeyDown事件代替KeyPress,以便您可以压制事件并实现预期结果

private void Txtbx_KeyDown(object sender, KeyEventArgs e)
{
   if (e.KeyCode.Equals(Keys.Enter))
   {
            SendKeys.Send("{TAB}");
            e.SuppressKeyPress = true;
   }
}

答案 1 :(得分:1)

您应该尝试使用SelectNextControl() - Method(在文本框上)而不是SendKeys。另请参阅https://msdn.microsoft.com/en-us/library/system.windows.forms.control.selectnextcontrol(v=vs.110).aspx