如何:关闭对话框并保留用户输入
可以在设计时或运行时设置对话框的关闭方式。 在设计时,可以设置对话框上所有 Button 控件的 DialogResult 属性。 在运行时,可以设置 DialogResult 属性,从而可以动态处理用户响应。
备注
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 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; }
备注
您还可以使用窗体的 Closing 事件来停止对话框的关闭。