我正在创建一个应用程序,其中我不希望用户使用字母或特殊字符,但数字(数字)除外。用户只能输入数字......如果用户输入字母或特殊字符,则会显示错误信息......我找到了“空白部分”的解决方案,即
if (uservalue == "" )
textblock.text = "Sorry! enter digit please"
else
textblock.text=y.toString();
如果用户只需按“单击我”按钮而不输入文本框中的数字,则会在文本块中显示此消息“抱歉!请输入数字”。我想知道如何解决字母和特殊字符的问题?
答案 0 :(得分:11)
您可以通过在TextBox中添加以下内容来更改手机的键盘,仅显示数字:
<TextBox .... InputScope="Digits" ....>
这仍然会添加'。'键盘上的键。要阻止用户键入它,请将KeyUp事件添加到TextBox并执行以下操作:
private void KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
TextBox txt = (TextBox)sender;
if (txt.Text.Contains('.'))
{
txt.Text = txt.Text.Replace(".", "");
txt.SelectionStart = txt.Text.Length;
}
}
答案 1 :(得分:2)
您可以使用TryParse方法:
int digit;
if (!int.TryParse(uservalue, out digit))
{
textblock.text = "Sorry! enter digit please";
}
else
{
textblock.text = digit.toString();
}
这假定用户应该输入有效的32位整数。如果您需要处理可以输入大量数字的较大值,您可以使用以下正则表达式\d+
来验证输入:
if (!Regex.IsMatch(uservalue, @"\d+"))
{
textblock.text = "Sorry! enter digit please";
}
else
{
textblock.text = uservalue;
}
答案 2 :(得分:1)
您可以使用TextBox
并在xaml中设置TextBox.InputScope=Number
。 InputScope
答案 3 :(得分:1)
尝试这肯定它会工作声明h和k作为整数变量.textbox只允许数字
private void txt3_KeyPress(object sender, KeyPressEventArgs e)
{
for (int h = 58; h <= 127; h++)
{
if (e.KeyChar == h) //58 to 127 is alphabets tat will be blocked
{
e.Handled = true;
}
}
for(int k=32;k<=47;k++)
{
if (e.KeyChar == k) //32 to 47 are special characters tat will
{ be blocked
e.Handled = true;
}
}
}
答案 4 :(得分:0)
您可以使用正则表达式
答案 5 :(得分:0)
以Rithc Melton所说的为基础,这里列出了所有输入镜选项