c# 事件和委托中的e参数!

来源:百度知道 编辑:UC知道 时间:2024/09/22 12:26:10
3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:(10)
namespace test
{
public delegate void OnDBOperate();

public class UserControlBase : System.Windows.Forms.UserControl

{

public event OnDBOperate OnNew;
privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)

{

if(e.Button.Equals(BtnNew))

{
//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。

}

}

}
请帮我读下这个程序,并且说明e这个参数的作用!

sender 和 e一起确定了一个事件发生的具体情况。
例如在上面这个例子中,e的作用是为了把触发事件的Button传进来,sender则是System.Windows.Forms.ToolBar类型

据估计代码是这样的
namespace test
{
public delegate void OnDBOperate();

public class UserControlBase : System.Windows.Forms.UserControl

{

public event OnDBOperate OnNew;
private void toolBar_ButtonClick(object sender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{

if(e.Button.Equals(BtnNew))

{
//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。
UserControlBase myControl = new UserControlBase();
myControl.OnNew += new OnDBOperate(My_OnNew);

}

}

private void My_OnNew()
{
//
}
}

当用户单击 ToolBar 控件上的按钮时,就会发生该事件。Button 属性包含 ToolBarButton,并包含被单击的按钮的信息。

这个e就是引发"当用户单击toolbar控件上的按钮"这一事件的对象