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)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)