手工打造WinForm并处理鼠标事件
/************************************************************
鼠标相关的事件大致有六种,分别是 :
"MouseHover"、"MouseLeave"、"MouseEnter"、"MouseMove"、"MouseDown"和"MouseUp"。
"MouseHover"、"MouseLeave"、"MouseEnter"事件的Delegate是"EventHandler",
事件通过数据的类是"EventArgs" ,和 "EventHandler" 都被封装在"System"命名空间;
而"MouseMove"、"MouseDown"和"MouseUp"三个事件的Delegate是"MouseEventHandler"来描述。
事件通过数据的类是"MouseEventArgs",和 "MouseEventHandler"被封装在"Syetem.Windows.Froms"命名空间中的。
*************************************************************/
using System ;
using System.Drawing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data ;
public class Form1 : Form
{
private System.ComponentModel.Container components = null ;
private System.Windows.Forms.Button btnAbout;
private System.Windows.Forms.Button btnExit;
private System.Windows.Forms.TextBox txtShow;
public Form1 ( )//构造函数
{ //初始化窗体中的各个组件
InitializeComponent ( ) ;
}
//清除程序中使用过的资源
protected override void Dispose ( bool disposing )
{
if ( disposing )
{
if (components != null) components.Dispose ( ) ;
}
base.Dispose ( disposing ) ;
}
//初始化窗体中的各个组件,在构造函数中被调用
private void InitializeComponent ( )
{ this.btnAbout=new System.Windows.Forms.Button();
this.btnExit=new System.Windows.Forms.Button();
this.txtShow=new System.Windows.Forms.TextBox();
this.SuspendLayout();
//this.btnAbout.BackColor = System.Drawing.Color.Gold;
this.btnAbout.ForeColor = System.Drawing.Color.Red;
this.btnAbout.Location=new System.Drawing.Point(10,10);
this.btnAbout.Size=new System.Drawing.Size(80,30);
this.btnAbout.Name="btnAbout";
this.btnAbout.Text="关于(&A)";
this.btnAbout.TabIndex=0;
this.btnAbout.Click+=new System.EventHandler(this.btnAboutClick);
this.txtShow.Multiline=true;
this.txtShow.Location=new System.Drawing.Point(10,50);
this.txtShow.Size=new System.Drawing.Size(270,200);
this.txtShow.Name="txtShow";
this.txtShow.Text="";
this.txtShow.TabIndex=2;
this.btnExit.Location=new System.Drawing.Point(100,10);
this.btnExit.Size=new System.Drawing.Size(80,30);
this.btnExit.Name="btnExit";
this.btnExit.Text="退出(&E)";
this.btnExit.TabIndex=1;
this.btnExit.Click+=new System.EventHandler(this.btnExitClick);
this.Controls.AddRange(new System.Windows.Forms.Control[]{
this.btnAbout,this.btnExit,this.txtShow});
this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14) ;
this.ClientSize = new System.Drawing.Size ( 292 , 273 ) ;
this.Name = "Form1" ;
this.Text = "C#处理鼠标按动事件--许明会" ;
//为鼠标按动定义一个事件处理过程"Form1_MouseDown"
this.MouseDown += new MouseEventHandler ( Form1_MouseDown ) ;
//为鼠标移动定义一个事件处理过程"Form1_MouseMove"
this.MouseMove += new MouseEventHandler ( Form1_OnMouseMove ) ;
this.txtShow.MouseMove+=new MouseEventHandler(this.txtMouseMove);
this.Closing+=new System.ComponentModel.CancelEventHandler(FormClose);
this.ResumeLayout(false);
}
//static void Main ( )
//{
// Application.Run ( new Form1 ( ) ) ;
//}
private void btnAboutClick(object sender,System.EventArgs e){
MessageBox.Show("程序设计-许明会","谢谢");
}
private void btnExitClick(object sender,System.EventArgs e){
DialogResult dResult;
dResult=MessageBox.Show(this,"真的要退出程序吗 ?","退出",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2,MessageBoxOptions.RightAlign);
if (dResult==DialogResult.Yes){
MessageBox.Show("您选择了Yes,程序将要退出!","退出");
Application.Exit();
}
else
MessageBox.Show("您选择了No,程序照常运行!","退出");
}
private void Form1_OnMouseMove ( object sender , MouseEventArgs e )
{
this.Text = "当前鼠标的位置为:( " + e.X + " , " + e.Y + ")" ;
} 
private void txtMouseMove(object sender,MouseEventArgs e){
this.Text = "当前鼠标的位置为:( " + e.X + " , " + e.Y + ")" ;
}
private void FormClose(object sender,System.ComponentModel.CancelEventArgs e){
if (MessageBox.Show("真的要退出程序吗?!","退出",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2)==DialogResult.No)
e.Cancel=true;
}
private void Form1_MouseDown ( object sender , MouseEventArgs e )
{
//file://响应鼠标的不同按键
/*string strMsg;
switch(e.button){
case MouseButtons.Left:
strMsg="";
break;
}*/
if ( e.Button == MouseButtons.Left ) MessageBox.Show ( "按动鼠标左键!" ) ;
if ( e.Button == MouseButtons.Middle ) MessageBox.Show ( "按动鼠标中键!") ;
if ( e.Button == MouseButtons.Right ) MessageBox.Show ( "按动鼠标右键!") ;
}
}




浙公网安备 33010602011771号