【发布时间】:2011-12-12 00:26:26
【问题描述】:
我已经在 google 和 * 上搜索了 2 个小时。必须有一些我只是简单地忽略的东西。有没有一种简单的方法可以在消息框中选择文本?截至目前,当我调用 MessageBox.Show() 时,我无法复制显示的文本。为什么不?如何将文本设置为可复制?
我的代码:
//catch all exceptions
catch (Exception ex)
{
MessageBox.Show(ex.Message);
//throw;
}
我希望能够选择出现的错误消息,以便用户可以将其发送给我,我可以解决他们的问题。非常感谢任何帮助。
编辑:不能使用 crtl-c 方法。我的用户无法理解这个概念。需要用鼠标突出显示并右键单击以选择选项。谢谢!
编辑:作为参考,我最终做的是混合使用答案。我创建了一个带有单个按钮的弹出窗口,并在按钮操作后复制到剪贴板。它并不完美,但有了正确的标签,它现在就足够好了。谢谢大家的建议!
//catch all exceptions
catch (Exception ex)
{
//MessageBox.Show(ex.Message);
MessageBoxButtons buttons = MessageBoxButtons.OK;
DialogResult result;
// Displays the MessageBox.
result = MessageBox.Show(ex.Message + "\n\nClick OK button to copy to clipboard", "Error", buttons);
if (result == System.Windows.Forms.DialogResult.OK)
{
Clipboard.SetText(ex.Message);
//throw;
}
}
【问题讨论】:
-
如果用户在 MessageBox 获得焦点时单击 Ctrl-C,则会将消息、消息框标题和按钮标签复制到剪贴板。
-
@Nacereddine 你说得很对。但是,我的用户目前不理解这是一个可能的选项,并希望文本可突出显示和可复制:(
-
您需要一个自定义消息框。以下答案中提供了一些链接:*.com/questions/4704839/custom-messagebox/…
-
@toosweetnitemare 您可以将消息输出到文本文件并让他们通过电子邮件将其发送给您吗?为方便起见,您可以将文件放在他们的桌面上。
-
@Nacereddine 这是个好主意。虽然我认为我只是在弹出窗口中添加一个按钮,上面写着复制消息,并在按下按钮时将其复制到剪贴板。您能否将您的答案添加到答案列表中,并很高兴为您的建议表示感谢。
标签: c# text messagebox noncopyable