【发布时间】:2011-01-26 20:13:12
【问题描述】:
如何在 WPF 中允许从 MessageBox 中选择和复制文本?
【问题讨论】:
如何在 WPF 中允许从 MessageBox 中选择和复制文本?
【问题讨论】:
如果您不需要选择文本作为要求,只需使用 System.Windows.Forms.MessageBox。它映射到已经允许使用 Ctrl+C 复制其内容的系统默认值。
【讨论】:
您可以在消息框获得焦点时使用 Ctrl+C,但它会为您提供比错误消息更多的文本。
例如
MessageBox.Show("Message", "Message Title", MessageBoxButton.OK);
复制粘贴为:
---------------------------
Message Title
---------------------------
Message
---------------------------
OK
---------------------------
【讨论】:
string msgtext = "message text";
if (MessageBox.Show(msgtext, "bla bla bla. (OK to copy)", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
{ Clipboard.SetText(msgtext); }
效果很好。
【讨论】:
if (msgtext, "bla bla bla. (OK to copy)", MessageBoxButton.OKCancel, MessageBoxImage.Information) == MessageBoxResult.OK)
var response = MessageBox.Show("...\r\n\r\nCopy to clipboard?", "", MessageBoxButton.YesNo); 然后if (response == MessageBoxResult.Yes) { ClipBoard.SetText("..."); }
如果您正在显示消息框...
System.Windows.Forms.Clipboard.SetDataObject(messageToShowInMsgBoxString, true);
将项目复制到剪贴板。
【讨论】:
最好的方法是使用带有可选文本控件的窗口,例如文本框。我可以根据经验说这是最简单的方法,并且不会花费太多时间或代码更改来实现。
【讨论】: