Windows Forms中是否有内置的确认对话框?

137
我想创建一个简单的确认对话框,内容为“请确认信息是否正确,如果确定无误,请点击‘确定’”。是否有这样的内置功能?
3个回答

262

这是一个示例。你可以尝试类似这样的东西。

var confirmResult =  MessageBox.Show("Are you sure to delete this item ??",
                                     "Confirm Delete!!",
                                     MessageBoxButtons.YesNo);
if (confirmResult == DialogResult.Yes)
{
    // If 'Yes', do something here.
}
else
{
    // If 'No', do something here.
}

你也可以尝试使用MessageBoxButtons.OKCancel代替MessageBoxButtons.YesNo,这取决于你的要求。

  1. 如果您有 .Net Framework 4.6 或更高版本,请尝试此方法。
MessageBoxResult confirmResult = MessageBox.Show("Are you sure to delete this item ??", "Confirm Delete!!", MessageBoxButton.YesNo);`

if (confirmResult == MessageBoxResult.Yes)
{
   // If 'Yes', do something here.
}
else
{
   // If 'No', do something here.
}

2
这种方法对我非常有效。我遇到了一个情况,有一个“重置”按钮可以删除数据,这提供了一个很好的处理方法。 - niczak
1
在我的情况下,我不得不使用MessageBoxResult而不是DialogResult。 - kamil.ka
MessageBoxButtons.YesNo 应该改为 MessageBoxButton.YesNo,而 DialogResult 在 .NET 4.6 中更改为 MessageBoxResult。 - Ian

19

MessageBox.Show 是一个可以指定标题、提示消息和显示的按钮选项的方法。

另一方面,如果您需要让用户确认信息,那么您可能需要显示自定义对话框,您可以使用 Form.ShowDialog 方法实现。


1
谢谢,我会研究一下Form.ShowDialog类。顺便问一下,你是如何在不显示修订的情况下编辑你的问题的? - delete

10

.Net Core 中,您可以这样做:

DialogResult dialogResult= MessageBox.Show("Are you sure to delete?", "Confirm", MessageBoxButtons.YesNo);

if (dialogResult == DialogResult.Yes)
{
    //if code here....            
}
else
{
   //else code here.... 
}

输出结果


实际上,该示例是 .Net 2.x、3.x 和 4.x 而不是 .Net Core。在 .Net Core 中,您无法创建 WinForms。从 .Net Core 3.0 开始,您可以使用 XAML 选项,但我不确定您是否可以以相同的方式创建消息框。 - nivs1978

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接