【问题标题】:Disable white space on key press in textbox禁用文本框中按键时的空白
【发布时间】:2013-12-05 14:27:57
【问题描述】:

我是 WinForms 的初学者,所以我想学习,

如何在文本框中禁用空格键?

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    // MyTextBox.Text ...?
}

任何帮助将不胜感激。

【问题讨论】:

  • 你不应该使用 keypressevent 来禁用按键。它不安全(例如:“ctrl + c”)。改用 Textchangedevent
  • @Pengu 你如何定义“不安全”?你是说它没有正确处理禁止粘贴操作在文本框中放置空格的事实吗?
  • @Corey 是的,这就是我的意思。但不仅如此 - 还有其他可能性,如“ALT + Code”,我可以想象还有更多的方法可以在没有 keypressevent 识别的情况下输入文本。
  • 将 e.Handled 设置为 true。请注意,这实际上并不能阻止用户在文本框中放置空格,他可以使用粘贴。请改用 Validating 事件。

标签: c# winforms textbox keypress


【解决方案1】:

这就是你想要的,不允许所有空格

    private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
    {              
         e.Handled = (e.KeyChar == (char)Keys.Space);
    }

【讨论】:

    【解决方案2】:

    使用此代码:

     private void txt_keyPress(object sender, KeyPressEventArgs e) \
        { 
             if ((sender as TextBox).SelectionStart == 0)
              e.Handled = (e.KeyChar == (char)Keys.Space);
         else
              e.Handled = false; 
        }
    

    【讨论】:

    • 你可以直接返回 e.Handled = true;
    • 只检查第一次按键
    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 2021-08-16
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2016-12-04
    相关资源
    最近更新 更多