在winform开发中,有时候需要对原有控件进行修改,本文就textbox控件为例,增加不能复制、粘贴、剪切textbox文本框内的内容。详细介绍如何实现。
创建自定义控件

增加属性方法
//注意继承父类对象,system.windows.forms.textbox
public partial class nocopypastetextbox : system.windows.forms.textbox
{ // 系统消息常量:剪贴板操作相关
private const int wm_copy = 0x0301; // 复制
private const int wm_cut = 0x0300; // 剪切
private const int wm_paste = 0x0302; // 粘贴
protected override void wndproc(ref message m)
{
// 拦截复制、剪切、粘贴的系统消息
if (m.msg == wm_copy || m.msg == wm_cut || m.msg == wm_paste)
{
return; // 忽略消息,不执行默认操作
}
// 其他消息正常处理
base.wndproc(ref m);
}
protected override void onkeydown(keyeventargs e)
{
// 拦截快捷键(双重保险)
if ((e.control && e.keycode == keys.c) ||
(e.control && e.keycode == keys.v) ||
(e.control && e.keycode == keys.x))
{
e.handled = true;
e.suppresskeypress = true;
return;
}
base.onkeydown(e);
}
public nocopypastetextbox()
{
// 禁用右键菜单
this.contextmenu = new contextmenu();
}
}
调用控件
重新编译后,在控件栏就可以看到自定义的控件,然后执行拖拉

到此这篇关于c# winform自定义控件的实现方法的文章就介绍到这了,更多相关c# winform自定义控件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论