我有一个输入,我希望它只接受我想要的数据类型,例如字符串或双精度。有什么方法可以通过编程来完成吗?
我试过了
TextBox text = new TextBox();
text.Type = 'numeric'; // an input that only accepts int.
text.Type = 'double';//or like this.
我的应用程序是动态的,所以我希望它像这样。对于所有数据类型都更通用。
但是没有成功。我以前说在html中输入,但在这里我不知道在wpf中是否有办法做到这一点?
您可以在文本框中添加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
我希望这能有所帮助。