如题,谢谢~!
解决方案 »
- 怎么结束一个局部变量的System.Timers.Timer?
- winform下,设置控件的enbled=false ,字体就会变成灰色.有什么方法可以修改字体颜色吗?
- winforms程序如何只让一个实例运行呢?
- 请问一下各位高手,类中能用Controls.add()添加控件吗?
- 发帖散分+分享
- c#中sql语句查询Oracle查询怪问题!!!
- 请教关于dropdownlist
- 当把一个SOAP service安装到一个运行IIS的服务器上的时候,还要安装其他的什么东西吗?
- Windows phone 8
- 怎样给字符串附值255个0
- 图片显示的问题
- 高手们帮忙给点建议:多对一c/s结构网络通讯程序设计
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c94c.aspx#q961q
在TextBox中,不能通过简单的捕捉键盘来屏蔽Copy动作。
过滤掉它的Copy消息就可以了。
protected override void WndProc(ref Message m)
{
int WM_COPY = 0x0301;
if(m.Msg == WM_COPY)
{
return;
}
base.WndProc (ref m);
}
这样一来,通过右键菜单进行Copy也同样被屏蔽了。当然,如果你边右键菜单也不让它出来,那么可以这么做:
textbox.ContextMenu = new ContextMenu();
using System;
using System.Windows.Forms;
namespace TextBoxEx
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class TextBoxEx:System.Windows.Forms.TextBox
{
public TextBoxEx()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private const int WM_COPY=0x0301;
protected override void DefWndProc(ref Message m)
{
if(m.Msg==WM_COPY)return;
base.DefWndProc (ref m);
}
}
}
public const int WM_GETTEXT=0x000d;
protected override void WndProc(ref Message m)
{
if(m.Msg==WM_GETTEXT)return;
base.WndProc (ref m);
}如果不让粘贴就把以上的WM_COPY,WM_GETTEXT改为WM_PASTE,WM_SETTEXT