C# panel控件实现鼠标滚轮滚动拖动滚动条

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenshendeai/article/details/53066769

实验中panel名称为pnl_suggest


界面初始化时添加panel鼠标滚动相应:

this.pnl_suggest.MouseWheel += new MouseEventHandler(FormSample_MouseWheel);

      

鼠标滚动相应函数:

 void FormSample_MouseWheel(object sender, MouseEventArgs e)

        {
            //获取光标位置
            Point mousePoint = new Point(e.X,e.Y);
            //换算成相对本窗体的位置
            mousePoint.Offset(this.Location.X, this.Location.Y);       
            //判断是否在panel内
            if (this.pnl_suggest.RectangleToScreen(
              pnl_suggest.DisplayRectangle).Contains(mousePoint))
            {
                //滚动
                pnl_suggest.AutoScrollPosition = new Point(0, pnl_suggest.VerticalScroll.Value - e.Delta);
            }

        }

进有以上两个方法还是不行,需要添加获取焦点函数,添加panel的单击相应如下:

private void pnl_suggest_Click(object sender, EventArgs e)
        {
            this.pnl_suggest.Focus();
        }

阅读更多
换一批

没有更多推荐了,返回首页