假设有窗体类A,A上有一个按钮"OK"(btnOK),当单击"OK"按钮后,触发Click事件。
public virtual btnOK_Click(object sender, System.EventArgs e)
{
......
}假设有窗体类B,B从A继承而来,但是B的"OK"按钮重载了A的方法。
public override btnOK_Click(object sender, System.EventArgs e)
{
......
}现在出现的问题是,当我单击B的"OK"按钮时,Click事件会执行两次,这是怎么回事?
public virtual btnOK_Click(object sender, System.EventArgs e)
{
......
}假设有窗体类B,B从A继承而来,但是B的"OK"按钮重载了A的方法。
public override btnOK_Click(object sender, System.EventArgs e)
{
......
}现在出现的问题是,当我单击B的"OK"按钮时,Click事件会执行两次,这是怎么回事?
解决方案 »
- 求助:Winform往2003版本的PPT中插入EMF格式图片抛出ArgumentException异常
- 高手,我需要真正的高手来···
- 求救:OracleDataAdapter.Fill(dataset);大数据量 提示数据库溢出。 急 急
- 分布调试问题:"当前不会命中断点,没有与此命令关联的可执行代码.";
- 最弱的新手问题,如何装sql server 2005 express?
- 高手请进来。~~~~~~~~~~~~~~~~~~~~~~~~~
- 穷菜鸟问一下WINFORM 下DATAGRID如何去等当前行数
- 请问各位高手,如何用C#语言编写数据库记录的添加,删除,更新,查询等功能!谢谢!请回复...
- 新手求解...
- 请问各位:com/com+和C#好书有哪些?现在用c#写com得多么?
- 知道两个DateTime.Now的时间,怎么求出他们的相差天数??
- 发布代码啦,c#实现的打印DataGrid中的数据--可分页[原创]
冲写的时候把base.btnOK_Click() ;去掉
我补充一点当我单击B的"OK"按钮时,是B自己的"OK"按钮Click事件会执行两次。
更加奇怪的是,我在B的Click中有这样一句代码:this.Disposal(),B把自己给注销了
但是还是可以再执行一次。
窗体A的btnOK_Click既然是虚方法,那就没必要实现了(写了也无用)。
还有:
public virtual btnOK_Click(object sender, System.EventArgs e)->
public virtual void btnOK_Click(object sender, System.EventArgs e)
另外一个也一样。
private btnOK_Click(object sender, System.EventArgs e)
{
this.OK();
}public virtual OK()//在派生类中只需要重写此方法。
{
this.DialogResult = DialogResult.OK;
}派生类B:
public override OK()
{
MessageBox.Show("已重写OK方法!");
base.OK();//不需要就注释掉
}
public virtual btnOK_Click(object sender, System.EventArgs e)
{
......
}假设有窗体类B,B从A继承而来,但是B的"OK"按钮重载了A的方法。
public override btnOK_Click(object sender, System.EventArgs e)
{
......
}按钮事件不需要加virtual。