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

来源:互联网 发布:淘宝50字万能好评 编辑:程序博客网 时间:2024/04/25 18:28

实验中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();
        }

0 0
原创粉丝点击