在c#中选择文本时自动复制文本

时间:2013-09-17 19:08:55

标签: c#

选择或突出显示时可以自动复制文本我的意思是只选择然后复制到c#中的剪贴板?非常感谢你 喜欢这个问题C# , detect selected text on windows? 但我不能使用上述问题答案的代码

3 个答案:

答案 0 :(得分:3)

好吧,如果它是Windows窗体应用程序,请使用GotFocus事件并发出以下命令:

Clipboard.SetData(((TextBox)sender).Text);

如果它是Web窗体应用程序,那么您将需要使用JavaScript。您需要使用文本框的focus事件:

<input type="text" focus="copyToClipboard(this);" />

然后你会想要这个JavaScript:

function copyToClipboard(obj) {
    var text_val=eval(obj);
    text_val.focus();
    text_val.select();
    if (!document.all) return; // IE only
    r = text_val.createTextRange();
    r.execCommand('copy');
}

JavaScript的问题在于它实际上并不适用于每个浏览器。请注意,JavaScript方法的问题在于,您需要为所有浏览器提供代码,以确保用户未关闭JavaScript。它逐渐变得更加复杂。

有关JavaScript中剪贴板工作的更多信息,请参阅此帖子,How do I copy to the clipboard in JavaScript?

答案 1 :(得分:0)

这就是为什么上帝发明了Clipboard.SetText方法http://msdn.microsoft.com/en-us/library/kz40084e.aspx它适用于Windows和Linux(Mono),我不知道Mac OS X

答案 2 :(得分:0)

您可能希望处理Validate事件并将SelectedText属性传递给剪贴板。像这样的东西:

Clipboard.SetData("{0}",((TextBox)sender).SelectedText);