-3

有人可以解释如何在 C# Visual Studio 中使用 TryParse 来验证某些文本框。我需要一个使用 TryParse 的函数,我有一个想法,但它不起作用

public void Letra(TextBox caja)
{
   char valor;

   if(char.TryParse(caja.Text, out valor))
   {
        if (caja.TextLength>1)
        {
            caja.Text = caja.Text.Remove(caja.TextLength);
            caja.SelectionStart = caja.TextLength;
        }
   }
}
4

3 回答 3

0

您始终可以使用正则表达式进行此类验证。这是最佳实践,而且速度非常快-

Regex charOnly=new Regex("^[^0-9]$");

您可以根据需要在 C# 中使用它,如果您的 TestBox 是 Web 形式,则使用 RegularExpressionValidator。您应该参考How can I get a regex to check that a string only contains alpha characters [az] or [AZ]?

于 2013-10-31T06:22:14.690 回答
0

您可以使用以下方法检查您的字符串是否包含数字

private bool CheckIfTextContainsNumber(string TextToCheck)
{
    return Regex.IsMatch(TextToCheck, @"\d");
}
  • \d代表数字 (0-9) + 其他数字,例如阿拉伯语

此外,您通过创建一个捕获 KeyPress-Event 的 EventHandler 来创建一个文本框,您不能在其中键入数字种类。

YourTextBoxControl.KeyPress += YourTextBoxControl_KeyPress;

在这里您可以检查输入的字符是否为数字。如果 char 是数字,则将 Handled 设置为 true

private void YourTextBoxControl_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = Char.IsNumber(e.KeyChar);
}
于 2013-10-31T07:36:50.457 回答
0

请看下面的代码。请注意,使用 Javascript 可以做得更好,但既然你真的想要一个 C# 函数,就在这里。

public bool isValid(TextBox caja)
           {
               string sTemp;
               if (caja != null)
               {
                   sTemp = caja.Text;
               }
               else
               {
                   return false;
               }

               if (sTemp.Length > 0)
               {
                   foreach (char cTemp in sTemp)
                   {
                       if (char.IsNumber(cTemp))
                       {
                           return false;
                       }
                   }
               }
               else
               {
                   return false;
               }
               return true;
           }

问候

于 2013-10-31T06:00:29.337 回答