📌  相关文章
📜  winforms yes no 对话框 - C# (1)

📅  最后修改于: 2023-12-03 15:05:58.044000             🧑  作者: Mango

WinForms Yes No 对话框 - C#

在WinForms应用程序中,Yes No 对话框经常用来让用户确认一个操作是否要执行,比如删除记录、关闭窗体等等。本文将介绍如何在C#中使用 WinForms Yes No 对话框。

显示 Yes No 对话框

我们可以使用 MessageBox 类中的 Show 方法来显示 Yes No 对话框,其第一个参数为对话框的消息文本,第二个参数为对话框的标题,它返回一个 System.Windows.Forms.DialogResult 枚举值,表示用户所做的选择。代码如下:

DialogResult result = MessageBox.Show("是否确认删除?", "提示", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
    // 用户点了 Yes 按钮
    // 执行删除操作
}
else
{
    // 用户点了 No 按钮
    // 取消删除操作
}
MessageBoxButtons

上面代码中的 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 枚举值来指定要显示的图标。以下是一些可用的选项:

// 显示带有问号的图标
MessageBoxIcon.Question

// 显示带有感叹号的图标
MessageBoxIcon.Exclamation

// 显示带有“X”的图标
MessageBoxIcon.Error

// 显示带有信息图标
MessageBoxIcon.Information

// 显示没有图标
MessageBoxIcon.None

虽然代码演示了MessageBox类如何实现,但从长远角度看这不是最好的选项,因为它有不足之处,特别是在业务编码中台的情况越来越重要的情况下。对话框的显示在于它是一个可以任何时间在前台弹出的框。而对于某些场景,例如:批量操作、多线程等,这样实现的对话框会阻塞后续操作。更优雅的做法是利用消息机制,自定义Yes No对话框,使得它可以作为一个独立的组件来使用。

以上就是使用 WinForms Yes No 对话框的简单介绍,通过指定不同的 MessageBoxButtons 和 MessageBoxIcon 参数,我们可以根据需要创建不同类型的对话框,满足应用程序的需求。