如何给Winform的Panel控件添加滚动条
winform
panel设置AutoScroll为True,当panel内控件超出panel范围时,就会显示滚动条,如下所示:
AutoScroll
属性说明
获取或设置一个值,该值指示容器是否允许用户滚动到任何放置在其可见边界之外的控件。
public
virtual
bool
AutoScroll
{
get;
t;
}
属性值
Type:
System.Boolean
如果容器允许自动滚动,则为
true;否则为
fal。默认值为
fal。
备注
为
true
时,此属性允许容器有一个大于其可见边界的虚拟大小。
当前
Windows
窗体中有一个限制,当启用了
RightToLeft
并且将
AutoScroll
设置为
Yes
时,该限制会使派生自
ScrollableControl
的所有类无法正确操作。例如,假设在窗体上放置了一个控件(如
Panel)或从
Panel
派生的容器类(如
FlowLayoutPanel
或
TableLayoutPanel)。如果将容器的
AutoScroll
设置为
Yes,然后将容器内部的一个或多个控件的
Anchor
属性设置为
Right,则不会显示任何滚动条。从
ScrollableControl
派生的类的行为与
AutoScroll
设置为
No
时的行为类似。
如何给Winform 的Panel控件添加滚动条
winform
panel设置AutoScroll为True,当panel内控件超出panel范围时,就会显示滚动条,如下所示:
AutoScroll
属性说明
获取或设置一个值,该值指示容器是否允许用户滚动到任何放置在其可见边界之外的控件。
public
virtual
bool
AutoScroll
{
get;
t;
}
属性值
Type:
System.Boolean
如果容器允许自动滚动,则为
true;否则为
fal。默认值为
fal。
备注
为
true
时,此属性允许容器有一个大于其可见边界的虚拟大小。
当前
Windows
窗体中有一个限制,当启用了
RightToLeft
并且将
AutoScroll
设置为
Yes
时,该限制会使派生自
ScrollableControl
的所有类无法正确操作。例如,假设在窗体上放置了一个控件(如
Panel)或从
Panel
派生的容器类(如
FlowLayoutPanel
或
TableLayoutPanel)。如果将容器的
AutoScroll
设置为
Yes,然后将容器内部的一个或多个控件的
Anchor
属性设置为
Right,则不会显示任何滚动条。从
ScrollableControl
派生的类的行为与
AutoScroll
设置为
No
时的行为类似。
关于C#使用 winform,在panel 里设置滚动条不启作用解决办法
本人在做一个软件,winform,一个主的界面中放置了一个panel,然后多个子form 在 主界面中的panel 做切换。因为子form里面控件太多,大概要1.5-2屏幕才能放下,所以把主form 的 panel的autoscroll设置为true,但发布后,窗体上并没有滚动条,经过三翻五次尝试。
解决办法:在子界面的form 界面设计中,把 autoScroll 设置为ture,即可。发布后,滚动条出现了。 其它地方不用动。
怎样设置Panel的滚动条的位置
1、ScrollView 的滚动条默认置顶,若想设置它的位置,可以使用mScrollView.smoothScrollTo(x,y)方法,可达到效果。
2、crollTo方法可以调整view的显示位置。在需要的地方调用以下方法即可。
3、scroll表示外层的view,inner表示内层的view,其余内容都在inner里。
注意,方法中开一个新线程是必要的。否则在数据更新导致换行时getMeasuredHeight方法并不是最新的高度。
public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Handler();
mHandler.post(new Runnable() {
public void run() {
if (scroll == null || inner == null) {
return;
}
int offt = inner.getMeasuredHeight() - scroll.getHeight();
if (offt < 0) {
offt = 0;
C#panel的滚动条
panel是没有鼠标滚轮事件的,那是针对主容器载体form的。我简单举例,拖一个winform,然后拖一个panel,在panel里代码添加一个panel,通过数据库数据生成高度超出容器就出现滚动条,子panel模板top初始化为0,左右满屏,底部让容器覆盖隐藏,滚动条你自己用panel画一个漂亮点的,mouWheel事件触发的时候就控制模板的top++或者--,注意临界值,不要一直递增,到顶了要停。旁边画的滚动条也跟着变化显示一下状态,就这么简单。
滚动事件:
voidmouWheel(objectnder,MouEventArg)
{
if(e.Delta>0)
{
panel2.Top++;//下滚
}
el
{
//上滚
panel2.Top--;
}
}
然后加入事件:
privatevoidForm1_Load(objectnder,EventArg)
{
this.MouWheel+=newMouEventHandler(mouWheel);
}