当前位置: 首页 > 编程语言 > C#

复制文本到剪贴板Share

时间:2023-04-10 18:06:27 C#

复制文本到剪贴板我正在做一个C#/.NET应用程序。我想在工具栏上创建一个基本上调用Ctrl+C(复制到剪贴板)的按钮。我查看了剪贴板类,但问题是因为我在表单上有多个文本框,我需要扫描哪个有焦点,如果/被选中的文本,以便从中选择文本等,所以我认为有必须是我的“单线”解决方案。有任何想法吗?(此外,如何在相同条件下添加所有3个:剪切、复制、粘贴到工具栏-主窗体上的多个tekstboxes..)编辑:如果Winforms..将其放入您的调用函数中:Clipboard.SetText(ActiveControl.Text);正如DanielAbouChleih所说:如果您必须与控件交互以调用函数,焦点将更改为该控件。这仅在您通过其他方式调用它时才有效。编辑:不是一行,但适用于最后一个活动的文本框:privateControllastInputControl{get;放;}protectedoverridevoidWndProc(refMessagem){//WM_SETFOCUS被触发。if(m.Msg==0x0007){if(ActiveControl是TextBox){lastInputControl=ActiveControl;}}//处理消息,以便ActiveControl可能会更改。base.WndProc(refm);如果(ActiveControl是TextBox&&lastInputControl!=ActiveControl){lastInputControl=ActiveControl;}}publicvoidCopyActiveText(){if(lastInputControl==null)返回;Clipboard.SetText(lastInputControl.Text);您现在可以调用CopyActiveText()来获取最近失去焦点或当前有焦点的最新TextBox。如果您使用WinForms,我可能有一个小问题的解决方案。创建一个对象来存储最后选择的TextBoxTextBoxlastSelectedTextBox=null;在构造函数中,通过使用参数this.Controls调用AddGotFocusEventHandler-Method,为窗体中每个TextBox的GotFocus-Event创建一个事件处理程序。publicvoidAddGotFocusEventHandler(Control.ControlCollectioncontrols){foreach(Controlctrlincontrols){if(ctrlisTextBox)ctrl.GotFocus+=ctrl_GotFocus;AddGotFocusEventHandler(ctrl.Controls);}}并将lastSelectedTextBox设置为当前选定的TextBoxvoidc_GotFocus(objectsender,EventArgse){TextBoxselectedTextBox=(TextBox)sender;lastSelectedTextBox=selectedTextBox;}在Click-EventHandler中,按钮检查selectedText是否为null,并将文本复制到剪贴板:以上是C#学习教程:复制文本到剪贴板分享全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—lastSelectedTextBox.Text);elseClipboard.SetText(lastSelectedTextBox.SelectedText);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: