原:
//页面后台代码
protected void Page_Load( object sender, EventArgs e )
{
Control11.ChangeTitle += newEventHandler( this.Control1_ChangeTitle );
}
protected void Control1_ChangeTitle( object sender, ChangeTitleEventArgs e )
{ this.Page.Title = e.Title; }
//报错:ChangeTitle”的重载均与委托“System.EventHandler”不匹配
//控件内代码
public event EventHandler ChangeTitle;
ChangeTitle( this, new ChangeTitleEventArgs( "编辑" ) );
public class ChangeTitleEventArgs : System.EventArgs
{
public ChangeTitleEventArgs(string title )
{ this.Title = title; }
public string Title
{ get; private set; }
}
在网上查了好久,都在说EventHandler要与ChangeTitleEventArgs一致对。
改:
//控件代码
public delegatevoid ChangeEventHandler(object sender, ChangeTitleEventArgs fe );
public eventChangeEventHandler ChangeTitle;
//页面后台代码
protected void Page_Load( object sender, EventArgs e )
{
//委托可以不实例化直接调用哦,才知道。
myWebControl11.ChangeTitle += newmyWebControl.ChangeEventHandler( Control1_ChangeTitle );
}
加了一个delegate void ChangeEventHandler注意代码中灰色的部分。不匹配的原因不是参数问题而是实例化的原因。
http://msdn.microsoft.com/zh-cn/library/system.eventargs.aspx这才是道