鼠标事件和键盘事件总结 及判断是不是数字方法
|
事件 |
Delegate |
命名空间 |
数据的类 |
实现 |
鼠 标 事 件 |
"MouseHover" "MouseLeave" "MouseEnter" |
EventHandler |
System |
EventArgs |
1、定义:"组件名"."事件名称"+= new System.EventHandler("事件名称"); 2、实现:button1.MouseLeave += new Syetem.EvenHandler(button1_MLeave); 3、响应事件:private void button1_MLeave (object sender,System.EventArgs e) {此处加入响应此事件的代码 } |
"MouseMove"、 "MouseDown" "MouseUp" |
MouseEventHandler |
Syetem.Windows.Froms |
MouseEventArgs |
1、定义:"组件名称"."事件名称"+= new System.Windows.Forms.MouseEventHandler("事件名称"); 2、实现:button1.MouseMove += new System.Windows.Forms.MouseEventHandler(button1_Mmove); 3、响应事件:private void button1_MMove(object sender,System.Windows.Forms. MouseEventArgs e) { 此处加入响应此事件的代码 } |
|
其一是读取鼠标的当前位置;其二是判定到底是那个鼠标按键按动。 判定鼠标的位置可以通过事件"MouseMove"来处理,在"MouseEventArgs"类中提供了二个属性"X"和"Y",来判定当前鼠标纵坐标和横坐标。而判定鼠标按键的按动情况,可以通过事件"MouseDown"来处理,并且在"MouseEventArgs"类中也提供了一个属性"Button"来判定鼠标按键情况。 |
|||||
键 盘 事 件 |
"KeyDown" "KeyUp" |
KeyEventHandler |
Syetem.Windows.Froms |
KeyEventArgs |
1、定义:"组件名称"."事件名称"+= new Syetem.Windows.Froms.KeyEventHandler("事件名称"; 2、具体实现代码:button1.KeyUp += new Syetem.Windows.Froms.KeyEventHandler(button1_KUp; 3、响应上面事件的基本结构:private void button1_KUp (object sender,Syetem.Windows.Froms. KeyEventArgs e) { 此处加入响应此事件的代码 } |
KeyPress |
KeyPressEventHandler |
KeyPressEventArgs |
1、 定义:"组件名称"."事件名称"+= new Syetem.Windows.Froms. KeyPressEventHandler("事件名称"; 2、具体实现代码:button1.KeyPress += new Syetem.Windows.Froms.KeyPressEventArgs(button1_KPress); 3、响应上面事件的基本结构: private void button1_KPress ( object sender , Syetem.Windows.Froms. KeyPressEventArgs e) { 此处加入响应此事件的代码 } |
||
和键盘相关的典型问题无非就是判定到底是哪个按键被按动。通过上面的三个事件都可以完成。并且在"KeyEventArgs"类中通过了一个属性"KeyCode",可以用他来读取当前按键。所以就在"KeyUp"或者"KeyDown"事件中处理这个问题。 |
需要判断Char是否为数字,有三种方法:
Char.IsDigit (aChar) 指示指定字符串中位于指定位置处的字符是否属于十进制数字类别
Char.IsNumber(aChar) 指示指定字符串中位于指定位置的字符是否属于数字类别
aChar>='0'&&aChar<='9' 判断aChar是否位于‘0’到‘9’之前 等同于第一种
//只能输入数字的TextBox
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//全角数字"KeyChar"=2,半角数字"KeyChar"=1
byte[] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString()); //array.LongLength,而不是array.Length
if (!char.IsDigit(e.KeyChar) || array.LongLength == 2) e.Handled = true;
if (e.KeyChar == '\b' || e.KeyChar == '.') e.Handled = false; //'\b'是退格键值
//总结:Handled 获取或设置一个值,该值指示是否处理过 KeyPress事件,
//KeyChar获取或设置与按下的键对应的字符
//e.Handled为false的时候表示可以接受该事件
//e.Handled = true;//为true时表示已经处理了事件(即不处理当前键盘事件)
}