📅  最后修改于: 2023-12-03 15:05:58.044000             🧑  作者: Mango
在WinForms应用程序中,Yes No 对话框经常用来让用户确认一个操作是否要执行,比如删除记录、关闭窗体等等。本文将介绍如何在C#中使用 WinForms Yes No 对话框。
我们可以使用 MessageBox 类中的 Show 方法来显示 Yes No 对话框,其第一个参数为对话框的消息文本,第二个参数为对话框的标题,它返回一个 System.Windows.Forms.DialogResult 枚举值,表示用户所做的选择。代码如下:
DialogResult result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
// 用户点了 Yes 按钮
// 执行删除操作
}
else
{
// 用户点了 No 按钮
// 取消删除操作
}
上面代码中的 MessageBoxButtons 参数指定了对话框中要显示的按钮。一个 Yes No 对话框只显示两个按钮,可以使用以下代码来显示不同的 Yes No 对话框:
// 显示带有“是”和“否”按钮的对话框
DialogResult result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.YesNo);
// 显示带有“是”、“否”和“取消”按钮的对话框
DialogResult result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.YesNoCancel);
// 显示带有“重试”和“取消”按钮的对话框
DialogResult result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.RetryCancel);
// 显示带有“确定”和“取消”按钮的对话框
DialogResult result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.OKCancel);
除了显示不同的按钮之外,我们还可以在对话框中显示不同的图标以提示用户。可以使用 MessageBoxIcon 枚举值来指定要显示的图标。以下是一些可用的选项:
// 显示带有问号的图标
MessageBoxIcon.Question
// 显示带有感叹号的图标
MessageBoxIcon.Exclamation
// 显示带有“X”的图标
MessageBoxIcon.Error
// 显示带有信息图标
MessageBoxIcon.Information
// 显示没有图标
MessageBoxIcon.None
虽然代码演示了MessageBox类如何实现,但从长远角度看这不是最好的选项,因为它有不足之处,特别是在业务编码中台的情况越来越重要的情况下。对话框的显示在于它是一个可以任何时间在前台弹出的框。而对于某些场景,例如:批量操作、多线程等,这样实现的对话框会阻塞后续操作。更优雅的做法是利用消息机制,自定义Yes No对话框,使得它可以作为一个独立的组件来使用。
以上就是使用 WinForms Yes No 对话框的简单介绍,通过指定不同的 MessageBoxButtons 和 MessageBoxIcon 参数,我们可以根据需要创建不同类型的对话框,满足应用程序的需求。