Winforms 在c#Forms中调用不同形式的按钮?

Winforms 在c#Forms中调用不同形式的按钮?,winforms,c#-4.0,button,Winforms,C# 4.0,Button,我是C#的新手,我正在创建一个需要使用两种表单的应用程序 一个是Mainform,另一个是DialogForm 对话框表单有两个按钮btnYes和btnNo 每当用户单击关闭按钮时,FormClosing事件就会调用,我在其中调用对话框form,如下所示: DialogForm ex = new DialogForm(); ex.ShowDialog(this); 现在我想为btnYes给出e.cancel=false,为btnNo给出e.cancel=true。(这是我的先生解释的,只是基本

我是C#的新手,我正在创建一个需要使用两种表单的应用程序 一个是
Mainform
,另一个是
DialogForm

对话框表单
有两个按钮
btnYes
btnNo

每当用户单击关闭按钮时,
FormClosing
事件就会调用,我在其中调用
对话框form
,如下所示:

DialogForm ex = new DialogForm();
ex.ShowDialog(this);
现在我想为
btnYes
给出
e.cancel=false
,为
btnNo
给出
e.cancel=true
。(这是我的先生解释的,只是基本的)

我知道如何为相同形式的
按钮
赋予功能,但我不知道如果
形式
不同如何赋予功能

我经历了一些,但由于我对c#还不熟悉,所以我无法理解。 如果你至少提供我一些链接,这将是可观的


提前感谢。

表单有一个属性
对话框result
。您可以在按钮事件处理程序中设置它

DialogResult = DialogResult.Yes;
// or
DialogResult = DialogResult.No;
然后你可以这样调用表单

if (ex.ShowDialog(this) == DialogResult.Yes) {
    // Do something
} else {
    // Do something else
}

您还可以在属性窗口中设置窗体的
CancelButton
属性。微软表示:

获取或设置用户按ESC键时单击的按钮控件

表单还有一个
AcceptButton
属性。微软表示:

获取或设置当用户按ENTER键时单击的窗体上的按钮


是的,它起作用了。但是有没有其他方法可以调用其他表单按钮呢。我的意思是使用
实例
或其他什么?请提供任何链接,我不想浪费您的时间@Olivier Jacot Descombes您可以将按钮单击事件处理程序公开,并从其他地方调用它<代码>公共无效btn(对象发送方,事件参数e){…}
otherform.btn\u单击(此,EventArgs.Empty)。如果要关闭另一个表单,只需调用
otherform.close()。当然,您可以在表单中创建自己的公共方法。例如,
public void clearalfields(){…}