永发信息网

wpf 如何在textBox中屏蔽空格

答案:1  悬赏:50  手机版
解决时间 2021-02-23 02:03
  • 提问者网友:蓝莓格格巫
  • 2021-02-22 04:53
wpf 如何在textBox中屏蔽空格
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-02-22 06:08
太复杂了
你这么实时去监测用户输入很费劲 而且不全面
用户右键粘贴、快捷键粘贴这些你都没处理
输入超长的数字 结果数值溢出了 也没处理
这些你全部处理掉 100行代码都算少的了

你在textbox的LostFocus事件里做个判断就可以了:
用 double.TryParse 尝试解析输入的文本
如果解析失败
给个提示或者用默认值替代
这就好了 轻松就能搞定
怎么简单怎么来 正常人谁会闲着没事往该填数字的文本框里输入奇怪的东西啊追问其实我用过TryParse 的,但是在中文输入法时会引发一连串异常,更麻烦,而且我还不会处理追答TryParse 根本不可能出现异常,只是返回 true 或 false 表示转换是否成功,这和输入法没有任何关系。为TextBox加LostFocus的事件处理:
void OnTextBox1LostFocus(object sender, RoutedEventArgs e)
{
    var input = textBox1.Text.Trim();
    if(input.Length != 0) 
    {
        double value;
        if(double.TryParse(input, out value))
        {
            input = value.ToString();
        }
        else
        {
            input = string.Empty;
        }
    }
    textBox1.Text = input;
}大概就是这样。这里只是转换失败,就将文本框置空。如果你要给出提示什么的,改改就好了。

追问我在 textchanged 事件里 用TryParse 的时候确实出现了异常, 之前还不知道LostFocus事件,不过这次没出现异常, 非常感谢,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯