我知道事件是如何运作的(基础知识)。我想了解,例如,有鼠标点击或绘制事件,什么初始化PaintEventArgs参数?那是一些潜在的低级机制?
答案 0 :(得分:3)
嗯,事件参数由暴露事件的对象初始化。
让我们以Button
为例。
当它被点击时,按钮本身会检测到它,因此调用事件处理程序传递,例如,按下了哪个按钮(这里是伪代码,只是为了解释):
this.MouseDown(this, new MouseEventArgs(MouseButtons.Right));
Paint
事件也是如此:
当控件检测到需要重绘时,创建一个图形对象,在其中绘制其结构,然后通过Paint
参数将其传递给PaintEventArgs
事件。