C#(Winform)禁用TextBox控件的鼠标事件

1. 继承TextBox,然后重写父类的部分方法,核心代码如下

public class MyTextBox : TextBox
    {
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case 0x0201://WM_LBUTTONDOWN
                    {
                        return;
                    }
                case 0x0202://WM_LBUTTONUP
                    {
                        return;
                    }
                case 0x0203://WM_LBUTTONDBLCLK
                    {
                        return;
                    }
                case 0x0204://WM_RBUTTONDOWN
                    {
                        return;
                    }
                case 0x0205://WM_RBUTTONUP
                    {
                        return;
                    }
                case 0x0206://WM_RBUTTONDBLCLK
                    {
                        return;
                    }
            }

            base.WndProc(ref m);
        }
    }

时间: 2024-10-16 06:09:44

C#(Winform)禁用TextBox控件的鼠标事件的相关文章

Static控件响应鼠标事件

tatic控件默认是不支持响应鼠标消息的,如果把其ID从IDC_STATIC改成其他的,可见其可以响应BN_CLICKED消息,但这远远不够.但是MS也没有把路堵死,我们可以利用SetWindowLong,动态增加 其SS_NOTIFY风格,使其支持鼠标响应. 1.不重载CStatic,使静态文本控件支持鼠标消息的办法 //可以在InitDialog中添加 DWORD dwStyle = m_static1.GetStyle(); dwStyle |= SS_NOTIFY; SetWindowL

Winform(C#)Flash控件 属性 方法 事件

我的用户控件->右键 添加/移除项 ->COM组件->ShockwaveFlash Object 打勾 属性: 1.AlignMode (读写) 语法:AlignModeAs Long 说明:对齐方式(与SAlign 属性联动).当控件的长宽比例与影片不一致且 WMode 不为 ExactFit 时,影片(没有被放大的)在控件中显示的位置可用该属性调整.该属性值由标志位组成.如图,将该属性值(二进制)中相 应的位标记为 1 就设置了相应的对齐方向. 属性值与相应的对齐方式(后面括号里是二

从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)

(21)和(22)写的不好,跳过. (23)AJAX异步加载 插件:dojo/request 参数:request 语法(get): request.get(URL).then(成功回调函数,失败回调函数); 第一个回调函数是成功的,参数用response:(也可以用其他的) 第二个回调函数是失败的,参数用error:(也可以用其他的) 注: ①读取本地比较简单,直接填写本地的url即可: ②如果读取服务器端(比如数据库),那么需要相应的支持,例如python脚本等(我自己目前对python.和

设置控件响应 鼠标事件 Qt::WA_TransparentForMouseEvents

问题描述: 1.tablewidget中的元素都是cellwidget,其中可能是widget,lable等 2.项目要求:鼠标移动到前几行,光标为禁止状态,其他为正常状态 3.遇到问题:鼠标在cellwidget上时,不响应tablewidget的鼠标移动事件,导致无法即及时更改光标样式 解决办法: 设置item属性:m_componentTableWgt->cellWidget(i, 0)->setAttribute(Qt::WA_TransparentForMouseEvents, tr

WinForm中TreeView控件实现鼠标拖动节点(可实现同级节点位置互换,或拖到目标子节点)

private int draptype=1;//1:不同级, 不为1:拖同级 private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) { if (e.Button == MouseButtons.Left) { DoDragDrop(e.Item, DragDropEffects.Move); } } private void treeView1_DragEnter(object sender, DragEvent

C#中设置TextBox控件中仅可以输入数字且设置上限

首先设置只可以输入数字: 首先设置TextBox控件的KeyPress事件:当用户按下的键盘的键不在数字位的话,就禁止输入 1 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 2 { 3 if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar))//如果不是输入数字就不让输入 4 { 5 e.Handled = true; 6 } 7 } 设置上限: 设置TextBox

ASP.Net TextBox控件只允许输入数字

原文:ASP.Net TextBox控件只允许输入数字 1.1.在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字: <asp:TextBox ID="TextBox" runat="server" OnKeyPress="if(((event.keyCode>=48)&&(event.keyCode <=57))||(event.keyCode==46)) {event.ret

在TextBox控件中禁用鼠标右键

实现效果: 知识运用: MouseEventArgs类的Button属性     TextBox控件的ContextMenu属性 实现代码: private void textBox1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) textBox1.ContextMenu = new ContextMenu(); } 原文地址:https://www.cnblogs.com/fei

WinForm 清空界面控件值的小技巧

原文:WinForm 清空界面控件值的小技巧 在WinForm里面有时候需要清空自己输入内容或是选择的选项,以便重新操作流程,那么一般你是怎么清空界面各个控件值的呢?如果窗体里面控件,尤其是TextBox控件比较多的时候,代码里面是不是要设置每个控件的Text属性值为空呢?下面我用这个例子,来探讨下清空界面控件值的小技巧.而且还能复用.不必每个窗体都做这些枯燥.无聊的工作. 一般的做法是在清除控件的事件里面添加下面这样的代码: 代码 private void btnClear_Click(obj