向MessageBox添加复制文本的按钮

4
我有一个程序,其中包含一系列名字和一个按钮,点击后会在MessageBox中显示一个随机名字。是否有办法在MessageBox的OK旁边添加一个“复制”按钮,当单击该按钮时,将复制该名称并关闭窗口?
如果上述方法不可行,是否有一种方法可以启用在MessageBox中复制文本?
谢谢。
注:如果无法添加复制按钮,则我的用户可能不明白 Ctrl+C、选中文本然后右键单击 > 复制是什么(我正在寻找这样的复制方式)。

1
我有一个模糊的记忆,即Windows消息框本地支持CTRL-C。不过现在无法确认... - Fredrik Mörk
@FredrikMörk:他们确实这样做。 - Pondidum
即使你已经弄清楚了代码部分,你下一个问题可能是如何向消息框添加自定义按钮。这是可能的,但并不容易。也许你最好创建自己的消息框。 - Cody Gray
2个回答

4
如果用户在消息框获得焦点时按下Ctrl-C,则消息、MessageBox标题和MessageBoxButtons标签将被复制到剪贴板中。
我通过谷歌搜索了您的标题,并找到了this
或者,如果您真的需要一个名为“copy”的按钮,您可以使用新的Windows表单创建自己的MessageBox,然后对按钮进行操作。像这样打开它可以保持MessageBox的感觉:
var myMessageBox = new CustomMessageBox();
myMessageBox.ShowDialog();

我希望我的用户更容易复制文本。我会看一下,但我主要想知道是否可以添加一个复制文本的按钮。 - Abraham

1

看起来你可能在寻找Clipboard类。

Clipboard.SetText(variableWithValue);

这里还有另一个关于操作消息框内容的答案在这里

也许更容易的方法是创建一个模态对话框,模拟使用MessageBox类而不是实际使用它。


我现在正在研究这个问题。如果我能解决它,我会选择你作为最佳答案。 - Abraham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接