- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这里有两个问题,希望没问题。
首先,主要是,我试图在用户退出我的应用程序时提示他们是否真的想退出。我的代码如下:
private void exitToolStrip_Click(object sender, EventArgs e)
{
DialogResult mBoxResult = MessageBox.Show("Would you like to exit the program?", "Exit Program", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
switch (mBoxResult)
{
case DialogResult.Yes:
this.Close();
break;
case DialogResult.No:
break;
}
}
根据 MSDN
,我应该使用 MessageBoxResult mBoxResult
而不是 DialogResult mBoxResult
。
我正在使用 .NET Framework 3.5
。我读了here pre-3.0
应该使用 DialogResult
,但是如果我使用 3.5
,MessageBoxResult
不应该工作吗?
当我尝试调用它时,我得到了
The type or namespace name
MessageBoxResult
could not be found (are you missing a using directive or an assembly reference?).
但是,当我使用 DialogResult 时它工作正常。这是为什么?
我的第二个问题是关于这段代码:
case DialogResult.No:
break;
如果有人点击对话框中的Cancel
按钮,是否可以在其中放置除中断之外的任何内容?或者没有它一切都会正常运行吗?
最佳答案
DialogResult 适用于 WinForms。 MessageBoxResult 适用于 SilverLight。
只有 break
语句适用于 No
情况。但是在这里使用 switch 语句有点过分了。 if (response == yes) Close();
就足够了。
但是请注意,这不是执行您想要的操作的理想方式。如果用户单击窗口边框上的关闭按钮,或按下 ALT+F4 会怎样?相反,您应该处理 FormClosing 事件:
private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Would you like to exit the program?", "Exit Program", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
e.Cancel = true;
}
通过将 e.Cancel
设置为 true
,您可以取消关闭表单。什么都不做,您允许表单关闭。
关于c# - MessageBoxResult 与 DialogResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9231556/
我正在使用 Windows 窗体设计器创建密码窗口,只是上下文略有不同。有几个输入字段,其中之一受密码保护。有一个“更改”按钮可以在主窗口顶部生成一个新的密码窗口。用户输入密码尝试并按“确定”。我需要
我正在读一本书,上面写着 Rather than setting the DialogResult by hand after the user clicks a button, you can de
在 WinForms 中,我们可以为按钮指定 DialogResult。在 WPF 中,我们只能在 XAML 中声明取消按钮: 对于其他人,我们需要捕获 ButtonClick 并编写如下代码: p
我有一个 C# GUI 应用程序。当用户点击红色“X”(用于关闭应用程序)时,我想显示一条消息并询问他是否真的想关闭它。 我找到了一个解决方案: DialogResult dialog
我有两个表单 Form1 和 Form2。 在 Form1 中,我调用 Form2,我想拦截用户按钮单击选择。如果 Form2 上的用户单击“确定”或“取消”按钮,那么我会尝试 var editFor
我有两个表单 Form1 和 Form2。 在 Form1 中我调用 Form2 并且我想拦截用户按钮点击选择。如果 Form2 上的用户单击了“确定”或“取消”按钮,那么我会尝试 var editF
我想要一个只有 3 个按钮的对话框。我也在 C# 中编码,在那里我可以分配一个 DialogResult(确定、取消、中止等等) 我想问的是:有没有办法做到这一点?我想我这边的代码没有帮助。我想按下按
正如标题所说,有没有办法在不关闭 Dialog 的情况下设置 DialogResult? 可能最简单的答案是否定的,但尽管如此,这是为什么呢? DialogResult= 背后的行为是什么?有什么办法
我有以下用于单击表单按钮的代码: private void btnOK_Click(object sender, EventArgs e) { if (
DialogResult result; result = MessageBox.Show(breakpl[0], "Move this to confige file?", MessageBoxBu
我已经覆盖了此表单上的默认 ShowDialog() 方法: public DialogResult ShowDialog(int itemToEdit) { this
我想获取用户单击的 DialogBox 按钮...但是当我使用 DialogResult 时出现此错误 'System.Windows.Window.DialogResult' is a 'prope
我有一些自定义对话框,上面有 Set Button ,当我退出 newBlockForm.ShowDialog(this); 时,如果用户是否按下该按钮,我想获得对话框结果. 就像我在 winform
我有一个表单 Form1,我从中将 Form2 显示为模态表单。在 Form2 中,我对不同的值集进行了各种编辑和删除,这些值应该在关闭 Form2 后反射(reflect)在 Form1 中。所以我
我尝试使用 DialogResult 检查 Messagebox 的 YesNoCancel。我正在使用以下代码,我没有发现任何问题: DialogResult dlgResult = Message
在回答我最近的一个问题 (Here) 时,Hans Passant 说我应该设置 DialogResult 来关闭我的表单而不是 form.Close() 虽然我似乎无法找出原因? 如果我没看错的话,
这以前从未发生在我身上。 我在 uses 子句下确实有 System.Windows.Forms 命名空间,并且我能够使用 DialogResult 的属性。看看下面的代码。这就是我的程序中的问题所在
我还有一个带有自定义按钮的自定义 c# MessageBox,并且我覆盖了 Show() 方法,这是我的大部分代码: public partial class CustomMessageBox : F
DialogResult result = MessageBox.Show("Do you want to delete?", string.Empty, MessageBoxButtons.YesN
我制作了一个显示的 form2,并且有返回 DialogResult 的按钮,但我不知道为什么这不起作用: 表格 1: private void buttonEvent_Click(object se
我是一名优秀的程序员,十分优秀!