textBox 如何禁止粘贴?

leyt 2006-10-12 02:48:54
一个多行TextBox,想禁止它的任何粘贴功能,如Ctrl+V 或 右键选择粘贴,
请问需要哪些代码?
...全文
1422 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
SupermanZgn 2006-10-13
  • 打赏
  • 举报
回复
mark
大选 2006-10-13
  • 打赏
  • 举报
回复
帮忙顶了。
ilexyang 2006-10-12
  • 打赏
  • 举报
回复
学习
sunbird69 2006-10-12
  • 打赏
  • 举报
回复
mark
leyt 2006-10-12
  • 打赏
  • 举报
回复
不是


多谢各位,这就给分!!
viena 2006-10-12
  • 打赏
  • 举报
回复
楼主我怯怯地问一句:
你的是不是ASP.NET程序?

如果你答是,我马上晕倒~
diandian82 2006-10-12
  • 打赏
  • 举报
回复
我原来使用HOOK实现过这个,你可以在www.codeproject.com上找一下,当时我就是参考这个上面的例子的。
viena 2006-10-12
  • 打赏
  • 举报
回复
WndProc是继承自Control类的protected方法,怎么会没有呢?
lovefootball 2006-10-12
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace testApplication1
{
public class TestTextBox : System.Windows.Forms.TextBox
{
public const int WM_PASTE = 0x0302;

protected override void WndProc(ref Message m)
{
if (m.Msg != WM_PASTE) base.WndProc(ref m);
}

}
}

viena(维也纳nn) 的意思是这样
以后你就用TestTextBox
而不要用MS的TextBox
jiewenzhai 2006-10-12
  • 打赏
  • 举报
回复
帮顶
一直学习 2006-10-12
  • 打赏
  • 举报
回复
to: viena(维也纳nn)

没有找到这个方法,TextBox类中没有啊。
lovefootball 2006-10-12
  • 打赏
  • 举报
回复

继承TextBox
重写WndProc

如果是ComboBox就比较麻烦了
buyaowen 2006-10-12
  • 打赏
  • 举报
回复
哈哈
重写
yzqlee 2006-10-12
  • 打赏
  • 举报
回复
楼上强。
viena 2006-10-12
  • 打赏
  • 举报
回复
//继承TextBox,重载一下它的方法
请不要混淆概念,override是重写、覆盖基类中的方法
重载是overload,指的是同名函数有多种不同参数的形式
lovvver 2006-10-12
  • 打赏
  • 举报
回复
对这个问题,我也拿不定,是否可以实现,网上有人说:
在WinForm中的TextBox控件没有办法屏蔽CTRL-V的剪贴板粘贴动作,如果需要一个输入框,但是不希望用户粘贴剪贴板的内容,可以改用RichTextBox控件,并且在KeyDown中屏蔽掉CTRL-V键,例子:

private void richTextBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.Control && e.KeyCode==Keys.V)
e.Handled = true;
}

来源:
http://www.chinahtml.com/programming/6/2006/csharp-11570776126234.shtml
sxlfybb 2006-10-12
  • 打赏
  • 举报
回复
如楼上viena(维也纳nn)所说,即可.


继承TextBox,重载一下它的方法:

public const int WM_PASTE = 0x0302;//粘貼消息

protected override void WndProc(ref Message m)
{
if(m.Msg != WM_PASTE)base.WndProc (ref m);
}

你也可以对整个程序进行消息监听,那样的话,开销更大些.
viena 2006-10-12
  • 打赏
  • 举报
回复
public const int WM_PASTE = 0x0302;//粘貼消息

protected override void WndProc(ref Message m)
{
if(m.Msg != WM_PASTE)base.WndProc (ref m);
}
dlzhangln 2006-10-12
  • 打赏
  • 举报
回复
if( e.Control & e.KeyCode == Keys.V )
{
MessageBox.Show( "aa" );
}
fencole 2006-10-12
  • 打赏
  • 举报
回复
帮顶,学习
加载更多回复(2)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧