2012-12-03 44 views
-2

我想询问是否有人知道如何限制文本框允许的时间。我正在使用C#Visual Studio 2010.C#期间验证

我的问题是我需要找到验证代码,以确保只允许用户的文本框Middle Initial的单个句点。如果用户键入另一个句点,则句号不会显示在文本框中。不需要错误消息。示例是仅接受字母的验证代码。这里是我的这个例子代码:

private void txtFirstName_KeyPress(object sender, KeyPressEventArgs e) 
     { 
      byte num = Convert.ToByte(e.KeyChar); 

     if ((num >= 65 && num <= 90) || (num >= 97 && num <= 122) || (num == 8) || (num == 32)) 
     { 

     } 

     else if (num == 13) 
     { 
      e.Handled = true; 
      SendKeys.Send("{Tab}"); 
     } 
     else 
     { 
      e.Handled = true; 
     } 

    } 

我目前有以下代码为我txtboxMI:

private void txtMI_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    byte num = Convert.ToByte(e.KeyChar); 

    if ((num >= 65 && num <= 90) || (num >= 97 && num <= 122) || (num == 8) || (num == 32)) 
    { 

    } 
    else if (num == 13) 
    { 
     e.Handled = true; 
     SendKeys.Send("{Tab}"); 
    } 
    else 
    { 
     e.Handled = true; 
    } 
} 
+0

请添加*你*拥有,而不是你需要完成什么任务什么的问题做。附注:不需要感谢你的笔记,签名,第一次在这里和类似的,因为这样的短语通常不会增加信息的问题。还要注意,“家庭作业”是过时的标签 - 尝试对你的问题加以说明,以便它通常是有用的,而不仅限于你的作业。 –

+0

char有很多相关的方法,比如'IsLetter','IsDigit',检查出来并重新访问你的代码 – V4Vendetta

回答

0

试试这个:

var txt = (TextBox)sender; 
if ((e.KeyChar >= 'A' && e.KeyChar <= 'Z') || (e.KeyChar >= 'a' && e.KeyChar <= 'z') || e.KeyChar == 8 || e.KeyChar == 32) { 
} else if (txt.Text.Contains('.') && e.KeyChar == '.') { 
    e.Handled = true; 
} else if (e.KeyChar == '\t') { 
    e.Handled = true; 
    SendKeys.Send("{Tab}"); 
}