如何设置wpf输入的类型?

问题描述 投票:0回答:1

我有一个输入,我希望它只接受我想要的数据类型,例如字符串或双精度。有什么方法可以通过编程来完成吗?

我试过了

TextBox text = new TextBox();
text.Type = 'numeric'; // an input that only accepts int.
text.Type = 'double';//or like this.

我的应用程序是动态的,所以我希望它像这样。对于所有数据类型都更通用。

但是没有成功。我以前说在html中输入,但在这里我不知道在wpf中是否有办法做到这一点?

c# wpf input
1个回答
1
投票

您可以在文本框中添加textChanged事件,然后处理更改的数据

按照这个例子:

TextBox textBox = new TextBox();
textBox.TextChanged += TextBox_TextChanged;

对于 int 数据类型:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        TextBox textBox = sender as TextBox;
        int iValue = -1;

        if (Int32.TryParse(textBox.Text, out iValue) == false)
        {
            TextChange textChange = e.Changes.ElementAt<TextChange>(0);
            int iAddedLength = textChange.AddedLength;
            int iOffset = textChange.Offset;
            textBox.Text = textBox.Text.Remove(iOffset, iAddedLength);
            textBox.Select(textBox.Text.Length, textBox.Text.Length);
        }
    }

如果您想要另一个数字数据类型,只需将 ivalue 更改为 float 或 double 等..

然后使用 float.tryparse 或 double.tryparse

我希望这能有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.