在 C# 中的文本框中粘贴限制
我已经完成了 textbox.shortcut= false
,因此我限制在 textbox
中复制和粘贴。但我只想粘贴数值(这里我还限制了 key_press
只能粘贴数值),但完全粘贴不起作用,我只想粘贴数值。我怎样才能做到这一点?
I have done the textbox.shortcut= false
so I have restricted to copy and paste in the textbox
. But I want to paste only numeric value (here I have also restricted in key_press
that only numeric value will be put) but totally paste are not functioning, I want to paste only numeric value. How can I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我会在
中处理该问题TextChanged
事件。这将捕获粘贴、拖放和所有其他可能的情况。
I would handle that in the
TextChanged
event.That would catch paste, drag'n drop and all other possible scenarios.
如果您要捕获按键,您可以检查 Ctrl-V 并使用类似的内容检查剪贴板内容,
然后检查 (this.Text + data) 看看它是否可以接受。
If you are trapping the keypress, you could check for Ctrl-V and check the clipboard contents using something like
You can then check (this.Text + data) to see if it is acceptable.
如果您基于文本框构建自己的控件,则可以覆盖文本框的 WndProc 事件:
If you build your own control based on the textbox you can override the WndProc event of the textbox:
在 KeyDown 事件中尝试一下
Try This in the KeyDown Event
也许使用 onchange 事件,每次更改文本时,尝试解析它,排除每个非数字字符?
Maybe use onchange event and every time when text is changed, try to parse it excluding every character that is not a number?
例如,如果您使用 MaskedTextBox 控件并将掩码设置为 #####,那么您可以复制 a123b 这样的值并将其粘贴到掩码编辑控件中,它只会粘贴 123。
If you use the MaskedTextBox control and set the mask to #####, for example, then you can copy a value like a123b and paste it into the masked edit control and it will only paste 123.