您的位置:首页 > 其它

WinForm控件消息处理的两个参数sender和e

2014-07-04 13:49 183 查看
以按钮的单击事件说明。按钮的单击事件处理函数形如:private void btn_start_Click(object sender, EventArgs e)

sender参数表示发送者,此处表示按钮。在调试的时候,将鼠标停留在sender参数上,稍等片刻,在弹出的提示框中,点左边的加号展开,能看到sender是ButtonBase类的对象。

System.Windows.Forms.Button btn = sender as Button;

System.Windows.Forms.ButtonBase btnBase = sender as ButtonBase;

这两行意思就非常明示了,sender就是你所点击的按钮对象的引用。Button类继承自ButtonBase类。

第二个参数:EventArgs e

选定EventArgs按F12,可以看到EventArgs是一个类,定义了一个静态只读成员变量Empty。到此,大多还不明白。如同第一个参数一样,调试的时候,将鼠标停留在e参数上,在弹出的提示框中,点左边的加号展开,可以看到,e参数是System.Windows.Forms.MouseEventArgs对象。

System.Windows.Forms.MouseEventArgs mer = e as System.Windows.Forms.MouseEventArgs;加上这样一句,转到MouseEventArgs定义看就非常明白了(MouseEventArgs类继承自EventArgs类),就是将鼠标的动作信息封装在这个类的对象e中。这个对象描述了鼠标点击情况,比如在按钮的那个位置点下了鼠标,Button说明是鼠标哪个键被按下了等信息。

System.Windows.Forms.ButtonBase btnBase = sender as ButtonBase;

int iBtnWidth = btnBase.Size.Width;

System.Windows.Forms.MouseEventArgs mer = e as System.Windows.Forms.MouseEventArgs;

int X = mer.X;

if (X < (int)iBtnWidth / 2)

{

MessageBox.Show("点出了按钮的左边", "信息");

}

else

{

MessageBox.Show("点出了按钮的中右边", "信息");

}

写上这样一段代码,就更容易理解了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐