在文本框中按键时禁用空格

3

我是WinForms的初学者,想要学习一下相关知识,

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

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

非常感谢您的帮助。


1
你永远不应该使用KeyPressEvent来禁用按键。这是不安全的(例如:"ctrl + c")。相反,应该使用TextChangedEvent。 - BudBrot
@Pengu 你是如何定义 “不安全”?你说的是它无法正确处理禁止粘贴操作将空格放入文本框的事实吗? - Corey
@Corey 是的,这就是我的意思。但不仅如此 - 还有其他可能性,比如“ALT + Code”,我可以想象还有一些更多的方法可以输入文本而不被键盘事件识别。 - BudBrot
将e.Handled设置为true。请注意,这并不能真正阻止用户在文本框中输入空格,他仍然可以使用粘贴。请改用Validating事件。 - Hans Passant
2个回答

8

这就是您想要的,禁止所有空格。

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

3
请使用此代码:
 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; - Rohit
这仅检查第一个按键。 - Tassisto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接