上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4 案例分析4操作键盘和鼠标
2.4.1 案例描述
本节介绍如何在应用程序中捕获用户键盘鼠标的变化,并根据不同的输入来响应用户请求。
2.4.2 案例分析
各种鼠标键盘事件的区别。
2.4.3 案例实现与技巧
① 首先,运行Visual Studio 2005,创建名为Mouse的Windows应用程序。
② 切换到源代码视图,在Form1的构造函数中加入如下事件注册程序。
this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Form1_ MouseClick); this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp); this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_ MouseMove); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_ KeyDown);
③ 向Form1窗口中的合适位置拖曳4个Label控件。
④ 给这4个Label控件分别命名为lb_mouse,lb_mouse_a,lb_keyboard,lb_keyboard_a。
⑤ 在Form1的设计视图中修改lb_mouse的Text属性为“鼠标的位置”,lb_mouse_a的Text属性为“(0,0)”,lb_keyboard的Text属性为“按下的键盘键”,lb_keyboard_a的Text属性为“未按下键盘键”。
⑥ 在Form1类中加入以下事件处理程序。
private void Form1_MouseMove(object sender,System.Windows.Forms.Mouse EventArgs e) { lb_mouse_a.Text = "( " + e.X.ToString() + "," + e.Y.ToString() + " )"; } private void Form1_MouseClick(object sender,System.Windows.Forms.Mouse EventArgs e) { lb_mouse_a.ForeColor = Color.Red; } private void Form1_KeyDown(object sender,System.Windows.Forms.KeyEvent Args e) { lb_keyboard_a.Text = e.KeyCode.ToString(); } private void Form1_KeyUp(object sender,System.Windows.Forms.KeyEventArgs e) { lb_keyboard_a.Text = "未按下按键"; }
⑦ 程序运行结果如图2-10所示。
⑧ 当单击鼠标左键时,鼠标的位置为红色,如图2-11所示。
图2-10 程序运行结果(一)
图2-11 程序运行结果(二)