WinForm事件中的Object sender和EventArgs e参数

Windows程序有一个事件机制。用于处理用户事件。

在WinForm中我们经常需要给控件添加事件。例如给一个Button按钮添加一个Click点击事件。给TextBox文本框添加一个KeyPress 键盘按下事件。通过强大的IDE,双击控件就能直接添加一个该控件默认的事件。

private void btnError_Click(object sender, EventArgs e)
{
        //some codes here.
}

双击Button,自动生成的是Click事件,事件的命名是控件名字加下划线加操作名字命名的。该事件还有两个参数,一个是object类型的sender,还有一个是EventArgs类型的e。

从英文意思来看sender和e这两个参数:

sender:发送者

EventArgs:事件参数 (EventArguments)

Aggument:论点

object:对象,基类

sender参数用于传递指向事件源对象的引用。简单来讲就是当前的对象。例如button的点击事件,那么这个sender就代表这个button自己。

private void btnError_Click(object sender, EventArgs e)
{
      //获取当前点击的Button
      Button thisClickedButton = sender as Button;
}   

由于sender指的是事件源对象,sender是object类型,用的时候记得转一下类型才可以用。

e参数是是EventArgs类型。简单来理解就是记录事件传递过来的额外信息。一般用于传递用户点击的位置啊,键盘按下的键等事件的额外信息。例如TextBox中有一个KeyPress事件。

private void inputTextBox_KeyPress(object sender, KeyPressEventArgs e)
 {
    //获取当前对象
     TextBox tb = sender as TextBox;

      //获取当前按下来的键值
      char c = e.KeyChar;
 }

在事件里可以通过e点出来,不过不同的事件传递的信息也会不同。

 

posted @   幽冥狂_七  阅读(727)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示