如何给Winform 的Panel控件添加滚动条

如何给Winform 的Panel控件添加滚动条,第1张

winform

panel设置AutoScroll为True,当panel内控件超出panel范围时,就会显示滚动条,如下所示:

AutoScroll

属性说明

获取或设置一个值,该值指示容器是否允许用户滚动到任何放置在其可见边界之外的控件。

public

virtual

bool

AutoScroll

{

get

set

}

属性值

Type:

System.Boolean

如果容器允许自动滚动,则为

true;否则为

false。默认值为

false。

备注

true

时,此属性允许容器有一个大于其可见边界的虚拟大小。

当前

Windows

窗体中有一个限制,当启用了

RightToLeft

并且将

AutoScroll

设置为

Yes

时,该限制会使派生

ScrollableControl

的所有类无法正确 *** 作。例如,假设在窗体上放置了一个控件(如

Panel)或从

Panel

派生的容器类(如

FlowLayoutPanel

TableLayoutPanel)。如果将容器的

AutoScroll

设置为

Yes,然后将容器内部的一个或多个控件的

Anchor

属性设置为

Right,则不会显示任何滚动条。从

ScrollableControl

派生的类的行为与

AutoScroll

设置为

No

时的行为类似。

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)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11815795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存