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

1 篇文章 0 订阅
1 篇文章 0 订阅


以按钮的单击事件说明。按钮的单击事件处理函数形如: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("点出了按钮的中右边", "信息");
}
写上这样一段代码,就更容易理解了。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值