namespace WCLDemo
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:MyButton runat=server></{0}:MyButton>")]
public class MyButton : Button
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)] public MyButton()
{
this.Text = "test";
} protected override void OnClick(EventArgs e)
{
this.Text = "xxx";
}
为什么没有在事件处里程序,只是重写OnClick方法就相当执行了点击事件了吗,我看Button的OnClick方法只是引发Click事件,为什么他也相当与了事件处理程序呢?
点击按钮,然后先执行OnClick方法,然后在引发Click事件,在执行事件处理程序。是这样子吗?
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:MyButton runat=server></{0}:MyButton>")]
public class MyButton : Button
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)] public MyButton()
{
this.Text = "test";
} protected override void OnClick(EventArgs e)
{
this.Text = "xxx";
}
为什么没有在事件处里程序,只是重写OnClick方法就相当执行了点击事件了吗,我看Button的OnClick方法只是引发Click事件,为什么他也相当与了事件处理程序呢?
点击按钮,然后先执行OnClick方法,然后在引发Click事件,在执行事件处理程序。是这样子吗?
解决方案 »
- JavaScript如何取Session,用了CSDN上其它提供的方法,还是解决不了.
- Discuz!NT的通行证设置有什么用
- 在GridView的DataNavigateUrlFormatString中如何使用 <%=%>
- 安装了VS2005后为何无ASPNET等用户的问题?
- 高手请进:请教一个ASP.NET程序时间格式显示的问题!
- 初次接触cache的应用,在一个页面cache中放上100条记录和当前的页码还有访问的IP,以20条为一页,做翻页。谢谢!!在线等!!
- 有那位好心人帮我找一个关于对DataGrid,DataList,Repeater共同分页的存储过程
- TreeView控件如何连接到Oracle数据库?
- .net 按钮添加控件问题
- 还有个小问题,关于datagrid
- 狠下心来了,谁教我做一个简单的无刷新,但是要非常全面那种!
- 緩存清除不掉???
1. 所谓的事件处理程序就是委托,委托的目的实际上是观察者模式。对于button的click事件来讲,就是我(客户)关心的的click事件,如果click发生了,请通知我。也就是
button1.click += new System.EventHandler(this.button1_Click);
如果click发生,请调用button1_Click函数。2. 而子类override父类的OnClick不太一样,这实际上不叫事件处理函数,叫覆盖。msdn对于Button.OnClick 的解释是:Raises the Click event of the Button control.是说在这里raise click事件,而不是处理click事件。re里面有note:
When overriding OnClick in a derived class, be sure to call the base class's OnClick method so that registered delegates receive the event.
如果你不覆盖Onclick函数,默认调用父类的Onclick,在这里会发出click事件。
事件. 看一下这个教程的:
http://blog.csdn.net/ChengKing/archive/2009/01/01/3680629.aspx
第五篇: [事件和数据回发机制]
点击按钮,然后先执行OnClick方法→然后引发Click事件→执行事件委托处理函数
没有错。要注意,重写任何方法,不要轻易丢掉原来的处理逻辑。也就是说应该写: protected override void OnClick(EventArgs e)
{
this.Text = "xxx";
base.OnClick(e);
}不调用原来的处理逻辑的后果往往比这里还要严重很多。