Windows程序设计与架构
上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 程序运行结果(二)