如何禁止在TextBox中输入下划线?
解决TextBox禁止输入下划线的问题
你的代码失效的核心原因是char.IsSymbol('_')的判断不成立——下划线在.NET的字符分类中不属于符号(Symbol),而是属于连接符标点(Punctuation, Connector),所以这个条件永远不会触发。
最简单可靠的修正方式是直接判断输入的字符是否为下划线本身:
private void CoupontextBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '_') { e.Handled = true; } }
如果你想通过字符分类规则来处理,也可以用char.IsPunctuation配合精准匹配:
private void CoupontextBox_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsPunctuation(e.KeyChar) && e.KeyChar == '_') { e.Handled = true; } }
前者逻辑更直接,避免了字符分类规则带来的歧义,推荐使用。
内容的提问来源于stack exchange,提问作者user19064227
相关产品推荐
相关产品推荐

