许明会的计算机技术主页

Language:C,C++,.NET Framework(C#)
Thinking:Design Pattern,Algorithm,WPF,Windows Internals
Database:SQLServer,Oracle,MySQL,PostSQL
IT:MCITP,Exchange,Lync,Virtualization,CCNP

导航

手工打造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 ( "按动鼠标右键!") ;
}

}


posted on   许明会  阅读(466)  评论(0编辑  收藏  举报

努力加载评论中...
点击右上角即可分享
微信分享提示