How to allow copying message on MessageBox

Solution 1:

If you don't need selecting text as a requirement, just use System.Windows.Forms.MessageBox. It maps to the system-default one which already allows copying its contents with Ctrl+C.

Solution 2:

You can just use Ctrl+C while the message box has focus, but it will give you a lot more text than just the error message.

e.g.

    MessageBox.Show("Message", "Message Title", MessageBoxButton.OK);

Would copy and paste as:

    ---------------------------
    Message Title 
    ---------------------------
    Message
    ---------------------------
    OK   
    ---------------------------

Solution 3:

I did it this way:

string msgtext = "message text";
if (MessageBox.Show(msgtext, "bla bla bla. (OK to copy)", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
  { Clipboard.SetText(msgtext); }

It works pretty good.

Solution 4:

If you're displaying the messagebox...

System.Windows.Forms.Clipboard.SetDataObject(messageToShowInMsgBoxString, true);

will copy the item to the clipboard.

Solution 5:

The best approach would be to use a Window with a selectable text control, like a textbox for example. I can say from experience that this is the easiest way, and will not take much time or code changes to implement.