C#panel的滚动条

2025-01-19 07:59:36
推荐回答(1个)
回答1:

panel是没有鼠标滚轮事件的,那是针对主容器载体form的。我简单举例,拖一个winform,然后拖一个panel,在panel里代码添加一个panel,通过数据库数据生成高度超出容器就出现滚动条,子panel模板top初始化为0,左右满屏,底部让容器覆盖隐藏,滚动条你自己用panel画一个漂亮点的,mouseWheel事件触发的时候就控制模板的top++或者--,注意临界值,不要一直递增,到顶了要停。旁边画的滚动条也跟着变化显示一下状态,就这么简单。

滚动事件:

void mouseWheel(object sender, MouseEventArgs e) 

  if (e.Delta > 0) 
  { 
     panel2.Top++;//下滚  
  } 
  else 
  {
     //上滚 
     panel2.Top--;
  } 
}

然后加入事件:

private void Form1_Load(object sender, EventArgs e)
{
   this.MouseWheel += new MouseEventHandler(mouseWheel);
}