【问题标题】:Windows Phone TextBox validationWindows Phone 文本框验证
【发布时间】:2012-04-08 16:44:55
【问题描述】:

有谁知道如何检查文本框中是否有任何非字母字符?

如果文本框中有任何符号或数字等 - 我想做一个:

MessageBox.Show("Please enter only letters");

非常感谢任何帮助。

【问题讨论】:

标签: windows-phone-7 textbox


【解决方案1】:

在文本框的 KeyPress 事件中,您可以检查字符是否为字母,如果不是则取消按键。这是未经测试的,但应该可以工作。

private void YourTextbox_KeyPress(Object sender, KeyPressEventArgs e)
{
    if(!char.IsLetter(e.KeyChar))
    {
        e.Handled = true;
        MessageBox.Show("Please enter only letters");
    }
}

本质上,您正在测试字符是否为字母,如果是,则允许按键进入操作系统,否则取消按键(通过将e.Handled 属性设置为true)。

现在,用户可以通过粘贴包含非字母字符的文本来绕过此问题,因此与安全性相比,它更多的是为了更好的用户体验。要在用户单击提交按钮后执行验证,您可以使用遍历字符串来确定是否有任何非字母字符。所以,在你的提交事件中,你可以有这样的东西:

for(int i = 0; i < YourTextbox.Text.Length; i++)
{
    if(!char.IsLetter(YourTextbox.Text[i])
    {
        MessageBox.Show("Please enter only letters");
        break;
    }
}

Char.IsLetter method on MSDN.

【讨论】:

  • 你也可以处理TextChanged来识别复制粘贴。
猜你喜欢
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
相关资源
最近更新 更多