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

粘贴到多个文本框中Share

时间:2023-04-10 19:20:17 C#

粘贴到多个文本框中当从第一个框中调用粘贴命令时,我想要做的是捕获剪贴板并将其粘贴到三个框中。此功能类似于许多接受序列号和电话号码作为输入的现代应用程序。据我所知,没有其他合理的方法来捕获WM_PASTE事件。从TexBox派生一个类并实现这个方法:usingSystem.Windows.Forms;使用System.ComponentModel;类TextBoxWithOnPaste:TextBox{publicdelegatevoidPastedEventHandler();[Category("Action")][Description("粘贴剪贴板中的文本时触发。")]publiceventPastedEventHandlerOnPaste;protectedoverridevoidWndProc(refMessagem){if(m.Msg==0x302&&OnPaste!=null)//仅当事件已被订阅时才处理WM_PASTE{OnPaste();}else{base.WndProc(refm);然后在窗体上放置三个自定义控件并将所有三个文本框上的OnPaste事件分配给相同的方法,在这种情况下我称之为textPasted():privatevoidtextPasted(){Stringinput=Clipboard.GetText();intl1=textBoxWithOnPaste1.MaxLength;intl2=textBoxWithOnPaste2.MaxLength;intl3=textBoxWithOnPaste3.MaxLength;尝试{textBoxWithOnPaste1.Text=input.Substring(0,l1);textBoxWithOnPaste2.Text=input.Substring(l1,l2);textBoxWithOnPaste3.Text=input.Substring(l2,l3);}catch(Exception){}}因为你暗示“像一个序列号”,我猜你想把粘贴的字符串拆分成文本方框上方的代码并不完美(尝试在所有三个文本框中手动输入数据后将一个空格粘贴到第三个文本框中,因此如果您知道文本粘贴在哪个文本框中,例如通过更改事件和像这样发送发件人),但它基本上可以工作,我想你可以弄清楚剩下的(你可以使用Tag属性来识别文本框)。捕获粘贴事件:protectedoverridevoidWndProc(refMessagem){//粘贴发生了吗?if(m.Msg==0x302){//发生粘贴,在此处添加您的逻辑}base.WndProc(refm);}然后,访问Clipboard对象以获取所需的文本。你可以得到捕获的文本Stringtxt=Clipboard.GetText();并将其放在另一个文本框的“文本”属性中可以绑定按键事件,当你Ctrl+V或Ctrl+v时,你可以使用剪贴板pad中的值更新三个文本框的值。您可以在第一个文本框的TextChanged事件上执行此操作。您可以增加框的字符限制并注册TextChanged,如果粘贴(或键入)的文本较长,它会跳过/切换到下一个文本框。以上就是C#学习教程:将共享内容全部粘贴到多个文本框中。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: