• winform的comboBox使鼠标滑轮修改值失效


    目标:

    winform窗体很多combobox下拉框,当他们其中的一个获得焦点的时候,如果滚动鼠标就会改变下拉框的值,要实现让鼠标滚轮不对下拉框的值造成影响

    如下代码直接拷贝粘贴,不用修改

    方法一:

    实现一:
    public partial class Form1 : Form, IMessageFilter
    {
        public Form1()
        {
            InitializeComponent();
        }
    
        #region IMessageFilter 成员
    
        public bool PreFilterMessage(ref Message m)
        {
            if (m.Msg == 522)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    
        #endregion
    
        private void Form1_Load(object sender, EventArgs e)
        {
            Application.AddMessageFilter(this);
        }
    }

    方法二:

    在同一个namespace中添加一个类:

    class comBoBoxEx : System.Windows.Forms.ComboBox
        {
            public bool isWheel = false;
            public string strComB = null;
            protected override void OnMouseWheel(System.Windows.Forms.MouseEventArgs e)
            {
                strComB = Text;
                isWheel = true;
            }
    
            protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
            {
                base.OnMouseDown(e);
                isWheel = false;
    
            }
    
            protected override void OnTextChanged(EventArgs e)
            {
                base.OnTextChanged(e);
                if (isWheel)
                {
                    Text = strComB;
                }
            }
        }
    

      

    参考:http://blog.sina.com.cn/s/blog_762e78b101011e8p.html

  • 相关阅读:
    专题三--1005
    专题三--1009
    专题三--1017
    背包九讲
    专题三--1003
    专题三--1004
    专题三--1015
    [洛谷P1220]关路灯
    [洛谷P1776]宝物筛选
    [USACO14JAN]Recording the Moolympics
  • 原文地址:https://www.cnblogs.com/Donnnnnn/p/6007248.html
Copyright © 2020-2023  润新知