如何强制文本框只取数字在WPF? [英] How to force textbox to take only numbers in WPF?

查看:223
本文介绍了如何强制文本框只取数字在WPF?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望用户在文本框

输入数值

我得到这个code:

 私人无效txtType1_Key preSS(对象发件人,重点pressEventArgs E)
{
     INT ISNUMBER = 0;
     !e.Handled = int.TryParse(e.KeyChar.ToString(),出ISNUMBER);
}
 

不过,我没有得到 textbox_Key preSS 活动和 e.KeyChar 在使用WPF。

什么在WPF解决?

编辑:

我犯了一个解决方案!

 私人无效txtName_ previewTextInput(对象发件人,TextCompositionEventArgs E)
{
    CheckIsNumeric(E);
}

私人无效CheckIsNumeric(TextCompositionEventArgs E)
{
    INT结果;

    如果(!(int.TryParse(e.Text,出结果)|| e.Text ==。))
    {
        e.Handled =真实;
    }
}
 

解决方案

 保护覆盖无效在previewTextInput(TextCompositionEventArgs E)
    {
        焦炭C = Convert.ToChar(e.Text);
        如果(Char.IsNumber(c))的
            e.Handled = FALSE;
        其他
            e.Handled =真实;

        base.On previewTextInput(E);
    }
 

I want user to enter only numeric values in TextBox.

I got this code:

private void txtType1_KeyPress(object sender, KeyPressEventArgs e)
{
     int isNumber = 0;
     e.Handled = !int.TryParse(e.KeyChar.ToString(), out isNumber);
}

But I am not getting textbox_KeyPress event and e.KeyChar while using WPF.

Whats the solution in WPF?

Edit:

I made a Solution!

private void txtName_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    CheckIsNumeric(e);
}

private void CheckIsNumeric(TextCompositionEventArgs e)
{
    int result;

    if(!(int.TryParse(e.Text, out result) || e.Text == "."))
    {
        e.Handled = true;
    }
}

解决方案

protected override void OnPreviewTextInput(TextCompositionEventArgs e)
    {
        char c = Convert.ToChar(e.Text);
        if (Char.IsNumber(c))
            e.Handled = false;
        else
            e.Handled = true;

        base.OnPreviewTextInput(e);
    }

这篇关于如何强制文本框只取数字在WPF?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆