【问题标题】:Disable new line in multi line text box and set next focus on enter key禁用多行文本框中的新行并将下一个焦点设置在输入键上
【发布时间】:2016-09-27 10:41:55
【问题描述】:

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

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

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

任何帮助将不胜感激。

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

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    我建议你应该使用KeyDown事件而不是KeyPress,这样你就可以抑制事件,并达到期望的结果

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

    【讨论】:

    • 我在 KeyPress 中也添加了其他代码,我无法抑制按键。
    • @JaydipJ,我想你的意思是压制,而不是超越?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-03-28
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 2018-07-18
      • 1970-01-01
      • 2012-11-01
      • 2014-03-12
      相关资源
      最近更新 更多