• 本站域名:OceanCoder.cn 若您喜欢本站,请添加至收藏夹!
  • 网站少部分资源来源自网络,如有侵犯您的权益,请联系站长删除!
  • 本站所有文章,除特殊标明外,皆为本人原创,转载请注明出处,谢谢合作!
  • 本站所下载的资源,若无特殊说明,使用统一解压密码:oceancoder.cn
  • 本站已实现布局自适应,支持手机端、pad端访问,欢迎体验
  • 本站部分资源可通过微信公众号留言获取,欢迎体验

Winform控件ComboBox禁用鼠标滚轮的方法

C# OceanCoder 2017-07-30 11878 次浏览 0个评论

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);
    }
}

方法二:

    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;
            }
        }
    }


已有 11878 位网友参与,快来吐槽:

发表评论