c#从messagebox.show弹出窗口中选择文本

too*_*are 24 c# text messagebox noncopyable

我一直在谷歌和stackoverflow搜索2小时.必须有一些我只是俯瞰.有没有一种简单的方法可以在消息框中选择文本?就在我现在调用MessageBox.Show()时,我无法复制显示的文本.为什么不?我如何设置文本可复制?

我的代码:

//catch all exceptions
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            //throw;
        }
Run Code Online (Sandbox Code Playgroud)

我希望能够选择出现的错误消息,以便用户将其发送给我,我可以解决他们的问题.任何帮助是极大的赞赏.

编辑:不能使用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;

                }

            }
Run Code Online (Sandbox Code Playgroud)

Nas*_*ine 36

如果用户Ctrl-C在MessageBox具有焦点时按下,则消息,MessageBox标题和MessageBoxButtons标签将复制到剪贴板.

编辑:您可以将消息输出到文本文件并让他们通过电子邮件发送给您?为了简化操作,您可以将文件放在桌面上

  • 一个不为人知的Windows提示,但它可以非常方便. (6认同)

Gre*_*zer 7

在我曾经处理过的所有生产系统上,我们创建了一个自定义对话框,其中包含一个友好的用户消息,其中包含一个按钮,用于将错误消息,堆栈跟踪,屏幕截图和系统信息通过电子邮件发送到支持电子邮件.


Jay*_*ggs 6

我会在用户使用以下代码关闭MessageBox之后或之前将MessageBox的文本复制到剪贴板:

var msg = "Hello world!";
MessageBox.Show(msg);
Clipboard.SetText(msg);
Run Code Online (Sandbox Code Playgroud)

这应该很容易让用户理解.

  • 这是一个糟糕的主意.你不应该盲目地覆盖用户在剪贴板上的内容而不先问他们; 你不知道它有多重要或不重要. (7认同)