是不是可以快速显示“显示信息”。简单Windows.Forms.MessageBox
中的按钮?
我想让用户选择在发生错误时查看stack trace
,但有时会显示较长的结果并使消息窗口变得混乱。
catch (Exception ex)
{
MessageBox.Show("exception " + ex.StackTrace);
}
答案 0 :(得分:1)
不,不幸的是没有。 创建一个自己的表单或查看WindowsAPICodePack,那里有很棒的东西。
答案 1 :(得分:0)
没有。这不可能。 仅标准MessageBox支持:是,否,取消,重试和确定按钮。
但是你可以编写自己的MessageBox表单类并改为使用它。
或者你可以使用YesNo buttonas做一个Messagebox,并在邮件中写一个问题“想要查看更多信息吗?”当用户按下是时,你会向他显示另一个带有堆栈跟踪的窗口。
答案 2 :(得分:0)
我会(并且已经)显示堆栈跟踪的前200个字符,然后允许他们下载具有完整堆栈跟踪的文本文件(如果选择)。
以下代码示例:
// C#
//Display frmAbout as a modal dialog
Form frmAbout = new Form();
frmAbout.ShowDialog();
如果您将表单专用于表单,那么您可以做一些非常好的事情,例如"向我发送错误" - 电子邮件按钮等
答案 3 :(得分:0)
您无法直接执行此操作,但您可以通过询问用户使用yesno按钮获益:您是否要查看例外情况? 。如果用户单击是,则显示异常,如果用户单击否,则只关闭messegebox。
catch (Exception ex)
{
DialogResult dialogResult = MessageBox.Show("Exception catched , would you like to view the exception?", "Exception", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
MessageBox.Show("exception " + ex.StackTrace);
}
}
希望它有效并且对任何错误感到抱歉
答案 4 :(得分:0)
您可以使用例外消息框。
try
{
// Do something that may generate an exception.
throw new ApplicationException("An error has occured");
}
catch (ApplicationException ex)
{
// Define a new top-level error message.
string str = "The action failed.";
// Add the new top-level message to the handled exception.
ApplicationException exTop = new ApplicationException(str, ex);
exTop.Source = this.Text;
// Show an exception message box with an OK button (the default).
ExceptionMessageBox box = new ExceptionMessageBox(exTop);
box.Show(this);
}
您可以参考http://technet.microsoft.com/en-us/library/ms166340.aspx