【问题标题】:What is the parameter MessageBoxResult defaultResult in MessageBox.Show for?MessageBox.Show 中的参数 MessageBoxResult defaultResult 是干什么用的?
【发布时间】:2011-10-03 07:56:42
【问题描述】:

一些MessageBox.Showoverloads有一个参数MessageBoxResult defaultResult。这个是来做什么的?描述说“指定消息框默认结果的 MessageBoxResult 值。”。返回的 MessageBoxResult 是否仅取决于用户单击/执行的操作(请参阅remarks here)?

如果我想要默认行为,我应该传递什么值?

【问题讨论】:

  • 从来不知道有那个选项。打算用它。

标签: c# .net wpf messagebox


【解决方案1】:

在简单的英语中,如果您在 MessageBox 出现时按“Enter”,将选择该选项。

【讨论】:

  • 如果我想要默认行为怎么办?
  • 使用 MessageBoxResult.None 会导致默认行为。
  • 我认为如果您使用的重载会强制您选择默认值,您应该使用常识来选择正确的默认值。毕竟你是在问用户一个问题,没有通用的默认值。如果您确认删除,默认为否,否则我主要倾向于肯定。您需要考虑“此场景的默认行为是什么?” -- 它是“首选”选择,所以默认值,如果这有助于您决定
  • @Rick 不知道,我仍然认为开发人员应该在这一点上做出决定。在某些情况下,“默认”是主观的。
  • 我想使用 MessageBoxOptions 选项参数,所有采用该参数的重载也采用 MessageBoxResult defaultResult。我的意思是默认情况下,我没有指定该参数时使用的值。
【解决方案2】:

根据MSDN Documentation on DialogResult Enumeration,这是指定消息框的返回值。

可能的值是:

  • :对话框不返回任何内容。这意味着模态对话框继续运行。
  • OK :对话框返回值是 OK(通常从标有 OK 的按钮发送)。
  • Cancel :对话框返回值为 Cancel(通常从标记为 Cancel 的按钮发送)。
  • Abort:对话框返回值为 Abort(通常从标有 Abort 的按钮发送)。
  • 重试:对话框返回值为重试(通常从标记为重试的按钮发送)。
  • 忽略:对话框返回值为忽略(通常从标记为忽略的按钮发送)。
  • Yes:对话框返回值为 Yes(通常从标记为 Yes 的按钮发送)。
  • No :对话框返回值为 No(通常从标有 No 的按钮发送)。

基于MSDN Documentation on MessageBox.Show method,消息框的默认按钮是确定按钮。

意思是如果你没有在消息框上指定任何按钮,它总是有一个确定按钮来关闭它。因此,消息框返回的“默认行为”或默认值将是检查 DialogResult.OK

result = MessageBox.Show(message);

if(result == DialogResult.OK) { /* default or OK button has been pressed */ }

【讨论】:

  • 如果没有确定按钮怎么办?
  • 如果您不指定任何 MessageBoxButtons 参数,默认情况下总会有一个 OK 按钮,因此您的默认值为 DialogResult.OK。那么我猜如果你指定一些 MessageBoxButtons 参数值,你的 DialogResult 值应该是 MessageBoxButtons 的一部分。同样,如果您想坚持使用默认 MessageBox.Show,您应该考虑使用 OK 值。
猜你喜欢
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
相关资源
最近更新 更多