积极答复者
有关继承画面按钮事件的问题

问题
-
BaseForm 中有一个取消按钮
Form1 继承自BaseForm 所以 Form1也有取消按钮
BaseForm的取消按钮Click事件如下:
private void btnCls_Click(object sender, System.EventArgs e) { DialogResult dr = MessageBox.Show("Are you Sure to Cancel?","Confirmation Dialog",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2); if(dr == DialogResult.No) { ..退出,不执行继承画面中的内容..;// 这个地方怎么写? } }
Form1 的Click事件如下
private void btnCls_Click(object sender, System.EventArgs e) { MessageBox.Show("hello world!"); }
用户点击Form1的取消按钮后会先显示 "Are you Sure to Cancel?" 的确认对话框,如果点YES的话,显示"hello world!" 如果点NO的话不显示.
就是 点击Form1 的取消按钮会先执行被继承画面(BaseForm)取消按钮的事件中内容,如果选NO的话希望直接退出不执行Form1中取消按钮事件中的代码.
能否实现,应该如何实现 谢谢!- 已编辑 luckyleaf521 2009年6月24日 11:11
- 已移动 Sheng Jiang 蒋晟Moderator 2009年6月24日 18:04 设计模式问题 ([Loc]From:Visual C#)
答案
-
private void button1_Click(object sender, EventArgs e)
{NewMethod();
}
public virtual bool NewMethod()
{
DialogResult dr = MessageBox.Show("Are you Sure to Cancel?", "Confirmation Dialog", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
if (dr == DialogResult.No)
{
//..退出,不执行继承画面中的内容..;// 这个地方怎么写?return false;
}return true;
}
//Form1
public override bool NewMethod()
{
if (base.NewMethod())
{
MessageBox.Show("hello world!");
}return true;
}
http://feiyun0112.cnblogs.com/- 已标记为答案 luckyleaf521 2009年6月25日 6:16
全部回复
-
private void button1_Click(object sender, EventArgs e)
{NewMethod();
}
public virtual bool NewMethod()
{
DialogResult dr = MessageBox.Show("Are you Sure to Cancel?", "Confirmation Dialog", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
if (dr == DialogResult.No)
{
//..退出,不执行继承画面中的内容..;// 这个地方怎么写?return false;
}return true;
}
//Form1
public override bool NewMethod()
{
if (base.NewMethod())
{
MessageBox.Show("hello world!");
}return true;
}
http://feiyun0112.cnblogs.com/- 已标记为答案 luckyleaf521 2009年6月25日 6:16
-