如何允许在MessageBox上复制邮件

我如何允许从WPF中的MessageBox中select和复制文本?

如果您不需要select文本作为要求,只需使用System.Windows.Forms.MessageBox。 它映射到系统默认的一个,它已经允许用Ctrl + C复制它的内容。

当消息框有焦点时,您可以使用Ctrl + C ,但它会给您更多的文本,而不仅仅是错误消息。

例如

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

将复制和粘贴为:

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

如果你正在显示消息框…

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

将项目复制到剪贴板。

我这样做了:

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

它工作得很好。

最好的方法是使用带有可选文本控件的窗口,例如文本框。 我可以从经验中得知,这是最简单的方法,不需要太多的时间或代码更改来实现。