因为我想让我的 textbox只能输入字符,所以用了正则表达式 if(Regex.IsMatch(textbox1.text,"[a-zA-Z,]+"))
{
return true;
}
else
{
return false;
}现在问题是,如果我第一位输入的数字,报错---正确如果第一位输入的是字符,第二位是数字,就不报错?如何判断我当前输入的字符?

解决方案 »

  1.   

    你的意思是说只能输入a-z,A-Z吗?
      

  2.   

    用这个正则表达式:Regex rx = new Regex(@"^[a-zA-Z]+$");
      

  3.   

    测试程序如下:
     Regex rx = new Regex(@"^[a-zA-Z]+$");
                string s = Console.ReadLine();
                while (s != "exit")
                {
                    Match m = rx.Match(s);
                    if (m.Success)
                    {
                        Console.WriteLine("yes");
                    }
                    else
                    {
                        Console.WriteLine("no");
                    }
                    s = Console.ReadLine();
                }
      

  4.   

    我是觉得可能我不该写在textchanged里
    这样,我判断的就是textbox1.text里的所有数值那就会出现我所说的问题,如果我第一位输入的数字,报错---正确如果第一位输入的是字符,第二位是数字,就不报错?如何判断我当前输入的字符?
    private void textbox1_TextChanged(){
    if(Regex.IsMatch(textbox1.text,"[a-zA-Z,]+"))
    {
    return true;
    }
    else
    {
    return false;
    }
    }
      

  5.   

    Regex rx = new Regex(@"^[a-zA-Z]+$");
                string s = Console.ReadLine();
                while (s != "exit")
                {
                    Match m = rx.Match(s);
                    if (m.Success)
                    {
                        Console.WriteLine("yes");
                    }
                    else
                    {
                        Console.WriteLine("no");
                    }
                    s = Console.ReadLine();
                }
      

  6.   

    加个^$表示起始,不然你的正则式也那个匹配([a-z][A-Z])+\.的所有表达式,所以也能输入数字,只要开头是匹配正则式的
      

  7.   

    寫在keyPress事件中.
    //0~9數字范圍。
    private int start = 48;
    private int end = 57;
    private void Mask1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    try
    {
    int input = e.KeyChar ;
    if ( input.Equals( 8 ) )
    {
    return ;//空格
    }
    if ( e.KeyChar.Equals('.') && !Mask1.Text.Length.Equals(0))
    {
    e.Handled = true;
    SendKeys.Send("{tab}");
    return ;
    }
    if ( input < start || input > end )
    {
    e.Handled = true;
    }
    }
    catch( Exception ex )
    {
    MessageBox.Show( ex.Message );
    }
    }
      

  8.   

    这个问题好解决,你要一个字符一个字符的去判断
    在textbox的KeyUp事件里,去判断每个按下的键是否符合要求,不符合要求给予出错提示
      

  9.   

    tjvictor(下一站----星星) 的应该可以解决的!