C# winfrom textbox 对于右键粘贴…
2014-03-14 21:39
281 查看
最近在做项目中遇到这样一个问题,用户希望在输入框中对右键粘贴和复制等功能进行有选择行的控制。之前我对于右键粘贴的控制就是监控系统粘贴板的内容,然后和正则表达式进行校验,如果不通过则清空textbox和粘贴板,但是这样不合理,下面说说我选择的做法:
禁用textbox里右键菜单的做法:
textBox.ShortcutsEnabled = false;
我只是做了对粘贴的控制,对于剪切和复制等都有对于的消息码,可以做不同的操作。
这个方法必须放在继承自textbox的类 A
里面,然后在界面上用的textbox控件须是 A 实例化后的。
protected override void
WndProc(ref Message m)
{
const int WM_CLEAR = 0x0303;
const int WM_UNDO = 0x0304;
const int WM_COPY = 0x0301;
const int WM_CUT = 0x0300;
const int WM_PASTE = 0x0302;
switch (m.Msg)
{
case WM_CLEAR:
this.Text = "WM_CLEAR ";
break;
case WM_COPY:
this.Text = "WM_COPY ";
break;
case WM_CUT:
this.Text = "WM_CUT ";
break;
case WM_UNDO:
this.Text = "WM_UNDO ";
break;
case
WM_PASTE:
禁用textbox里右键菜单的做法:
textBox.ShortcutsEnabled = false;
我只是做了对粘贴的控制,对于剪切和复制等都有对于的消息码,可以做不同的操作。
这个方法必须放在继承自textbox的类 A
里面,然后在界面上用的textbox控件须是 A 实例化后的。
protected override void
WndProc(ref Message m)
{
const int WM_CLEAR = 0x0303;
const int WM_UNDO = 0x0304;
const int WM_COPY = 0x0301;
const int WM_CUT = 0x0300;
const int WM_PASTE = 0x0302;
switch (m.Msg)
{
case WM_CLEAR:
this.Text = "WM_CLEAR ";
break;
case WM_COPY:
this.Text = "WM_COPY ";
break;
case WM_CUT:
this.Text = "WM_CUT ";
break;
case WM_UNDO:
this.Text = "WM_UNDO ";
break;
case
WM_PASTE:
相关文章推荐
- C#如何禁止textbox 复制、粘贴、剪切、鼠标右键
- C# winfrom设置textbox字体大小和样式
- C#winfrom中TextBox只可输入数字、整数
- C#winfrom中TextBox只可输入数字、整数
- C# 限制TextBox控件中只能输入数字
- C# 如何让多行TextBox实现换行
- c# TextBox只允许输入数字,禁用右键粘贴,允许Ctrl+v粘贴数字
- c# winfrom 皮肤切换 控件 IrisSkin2.dll 使用 及下载 & 皮肤文件 下载
- C# 如何让多行TextBox实现换行
- DataGridView右键选中某单元格(C# Winfrom)
- C# winfrom设置textbox字体大小和样式并结合GridView使用
- 【转载】C# winfrom设置textbox字体大小和样式
- C#禁止textbox复制、粘贴、剪切及鼠标右键的方法
- C# 串口操作系列(2) --&…
- C# 特性的学习(一)
- C# winfrom 中自定义的翻页控件(自己设计)
- C#只允许启动一个WinFrom进程
- c# vs2010 directsound&…
- C# ActiveX控件
- 【转载】c#做WinFrom中的进度条(ProgressBar)使用一二