KeyPress

先说一个类似的方法:KeyPress
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
 if (e.KeyChar.ToString() == "\r")
 {
//按回车的时候处理
}
if(e.KeyChar<'a' || e.KeyChar>'z')
{
e.Handled=true;
}
}
或者:
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(e.KeyChar<(char)97 || e.KeyChar>(char)122)
{
e.Handled=true;
}
}
对于处理各种普通字符来说,使用KeyPress事件进行判断再好不过了。
但KeyPress有其自身的局限性。它不能捕捉功能键的按键事件,如:F1——F12,shift,Ctrl,Alt,Tab,方向键,以及Insert,Home ,print等。
需要对这些按键事件进行处理的时候,请使用KeyDown或KeyUP事件。
当然,KeyDown或KeyUP事件 也可以对各种字符进行处理:
例:对功能键进行处理:
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode ==Keys.F1 )
{
frmHelp.ShowDialog();
}
}
注释:Keys——〉键盘枚举类型
frmHelp :自定义的另一个界面的实例。ShowDialog()方法,使该界面显示出来。
对普通字符的处理:(只允许输入0——9的数字)
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode<Keys.D0 ||e.KeyCode>Keys.D9)
{
e.Handled=true;
}
}

第一个C#程序是一个简单计算器,要求为按钮(Button)添加键盘事件。我折腾了好久,没看到程序响应KeyPress事件,问了同学,发现要设置KeyPreview的值为true,让Frame首先响应键盘事件才行。

用pressKeyDown事件,但是有一点,如果你加了button,就不能实现了。
所以form里面不要button控件,至于为什么?我也说不明白,只能意会,以前我就出现过。

<script language="javascript">

function checkForm(obj)
{
 
 var username=obj.username.value;
  
var regx=/^[\u4e00-\u9fa5]{4}$/g
  
if(!regx.test(username))
   {
     
  alert("您必须输入4个汉字!");
   
  return false;
   }
  
alert("ok");
  
return true;
}

</script>

<form name="myForm" onSubmit="return checkForm(this)">
 
   <input type="text" name="username"/>
  
  <input type="submit" vlaue="submit"/>

</form>
posted @ 2012-06-22 13:18  洗耳恭听兼烂笔头  阅读(275)  评论(0编辑  收藏  举报