[英]How to return a value when the Close button [X] is clicked using the MessageBox? (C#)
在C#中使用MessageBox时,如果最终用户单击带有标签的按钮“是”,“否”或“取消”,我们可以控制应用程序的操作,如下所示:
DialogResult overwriteDialog = WinForms.MessageBox.Show("Do you want to overwrite?", "Overwriting", MessageBoxButtons.YesNoCancel);
if (overwriteDialog == DialogResult.Yes)
{
#do something
}
else if (overwriteDialog == DialogResult.No || overwriteDialog == DialogResult.Cancel)
{
#do something else
}
这里的问题是,如果单击关闭[X]按钮,如何使另一个if语句使代码执行其他操作?
如果用户单击close [X]按钮,似乎无法返回值,但是我们可以简单地添加其他else语句,因为这将是约束if语句中所有其他按钮之后的最后一个选项。
对@preciousbetine和@SLaks的回答的学分
我认为当您单击红色关闭按钮时,您将获得DialogResult.None值。 尽管如此,您仍可以通过以下参数之一为MessageBox提供默认值( https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.messagebox.show?view=netframework-4.7.2 #System_Windows_Forms_MessageBox_Show_System_Windows_Forms_IWin32Window_System_String_System_String_System_Windows_Forms_MessageBoxButtons_System_Windows_Forms_MessageBoxIcon_System_Windows_Forms_MessageBoxDefaultButton_System_Windows_Forms_MessageBoxOptions_System_String_ )。 如果指定了default,则将获得默认值而不是None值。
MSDN: https : //docs.microsoft.com/zh-CN/dotnet/api/system.windows.forms.dialogresult? view = netframework- 4.7.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.