c# winform中的DialogResult怎么使用

阿里云服务器

在C# WinForms中,DialogResult是一个枚举类型,用于指定对话框的返回值。它通常与模态对话框(modal dialog)一起使用,以指示用户是点击了“确定”按钮、“取消”按钮,还是关闭了对话框窗口。使用DialogResult可以帮助你根据用户的操作来执行不同的代码逻辑。

基本用法

当你显示一个模态对话框时(比如使用ShowDialog()方法),你可以通过检查对话框返回的DialogResult值来决定接下来做什么。

示例:使用MessageBox的ShowDialog方法

MessageBox是WinForms中内置的一个简单对话框,用于显示消息给用户。它有一个ShowDialog()方法,该方法会阻塞当前线程直到用户关闭对话框,并返回一个DialogResult值。

csharp复制代码

DialogResult result = MessageBox.Show("你确定要退出吗?", "退出确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question);    

if (result == DialogResult.Yes)    

{    

// 用户点击了“是”,执行退出操作      

Application.Exit();    

}    

else      

{    

// 用户点击了“否”,不执行退出操作      

MessageBox.Show("操作已取消。");    

}    

自定义对话框

对于自定义的对话框(继承自Form的类),你通常需要在对话框中定义一些按钮(比如“确定”和“取消”),并为这些按钮的点击事件设置逻辑,以返回不同的DialogResult值。

csharp复制代码

// 假设你有一个名为MyCustomDialog的自定义对话框类      

MyCustomDialog dialog = new MyCustomDialog();    

// 显示对话框并获取返回值      

DialogResult result = dialog.ShowDialog();    

if (result == DialogResult.OK)    

{    

// 用户点击了“确定”按钮      

// 执行相应操作      

}    

else if (result == DialogResult.Cancel)    

{    

// 用户点击了“取消”按钮或关闭了对话框      

// 执行相应操作      

}    

在自定义对话框类中,你需要在按钮的点击事件处理器中设置this.DialogResult的值。例如:

csharp复制代码

private void btnOK_Click(object sender, EventArgs e)      

{    

// 假设btnOK是“确定”按钮      

this.DialogResult = DialogResult.OK;    

// 关闭对话框      

this.Close();    

}    

private void btnCancel_Click(object sender, EventArgs e)      

{    

// 假设btnCancel是“取消”按钮      

this.DialogResult = DialogResult.Cancel;    

// 关闭对话框      

this.Close();    

}    

这样,当用户点击这些按钮时,对话框就会关闭,并返回相应的DialogResult值给调用者。