更新:2007 年 11 月
可以在设计时或运行时设置对话框的关闭方式。在设计时,可以设置对话框上所有 Button 控件的 DialogResult 属性。在运行时,可以设置 DialogResult 属性,从而可以动态处理用户响应。
| .gif) 说明: | 
|---|
| 显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 | 
在设计时设置控件的 DialogResult 属性
- 单击要为其设置该属性的 Button 控件。 
- 在“属性”窗口中选择 DialogResult 属性,然后打开可用属性设置列表。 
- 选择适当的对话框结果。 - 可为用户执行的、除单击 Button 控件以外的其他操作设置对话框结果。如果对话框不包含关闭该对话框的按钮,可在运行时设置该对话框的结果。 
以编程方式设置控件或窗体的 DialogResult 属性
- 定位到要为其设置 DialogResult 属性的事件处理程序或方法。 
- 编写类似于下面的代码示例的代码。 - Public Sub InformationProcessed() ' This code will set the DialogResult for a form. Me.DialogResult = DialogResult.Yes ' OR ' This code will set the DialogResult for a button. Button1.DialogResult = DialogResult.No End Sub- private void InformationProcessed() { // This code will set the DialogResult for a form. DialogResult = DialogResult.Yes; // OR // This code will set the DialogResult for a button. button1.DialogResult = DialogResult.No; }- private: void InformationProcessed() { // This code will set the DialogResult for a form. this->DialogResult = DialogResult::Yes; // OR // This code will set the DialogResult for a button. button1->DialogResult = DialogResult::No; }- 虽然设置 DialogResult 属性将引起对话框自动关闭,但仍可处理控件的 Click 事件,而且对话框在事件处理程序的代码完成后立即关闭。在处理 Click 事件时,可能需要暂停对话框的关闭。 
阻止 DialogResult 属性关闭对话框
- 在事件处理程序中,编写类似于下面的代码示例的代码。 - Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.DialogResult = DialogResult.None End Sub- private void button1_Click(object sender, System.EventArgs e) { DialogResult = DialogResult.None; }- private: void button1_Click(System::Object ^ sender, System::EventArgs ^ e) { this->DialogResult = DialogResult::None; }.gif) 说明: 说明:- 您还可以使用窗体的 Closing 事件来停止对话框的关闭。