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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何给Winform 的Panel控件添加滚动条相关的知识,希望对你有一定的参考价值。

参考技术A 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
时的行为类似。

c# winform 中循环控件

有一个form窗口,SplitContainer分成左右两半,右边采用不同的usercontrol,usercontrol1~usercontrol10。想在form中左边部分控制右边usercontrol的显示/隐藏。除了一一操作外,是否有其它可循环的方法批量去控制usercontrol的状态。
抱歉,只有20分了,全部给了。

参考技术A 比如usercontrol1~usercontrol10 全是panel类的控件

foreach(Control c in SplitContainer.panel1.Controls)

if(c is Panel)

Panel p = c as Panel;
//这里可以加入其它逻辑
p.Visble = false;

本回答被提问者采纳
参考技术B 你先帖代码,再根据你的代码写答案. 参考技术C for(int i=1 ;i<=10;i++)

usercontrol ctl=(usercontrol)(this.Controls.Find("usercontrol"+i,true)[0]);
console.writeline(ctl.name);

以上是关于如何给Winform 的Panel控件添加滚动条的主要内容,如果未能解决你的问题,请参考以下文章

winform动态添加控件显示排列 选中一个分类后,在panel控件中动态添加图片和文字,跟桌面上的图标一样。

winform panel 如何添加滚动条

winform 如何将panel中的某一个控件置于最上层?

C#把winform中的Panel控件部分全屏

c#winform制作用户控件+传值给用户控件

c#:winform的panel控件,我设计时把panel2覆盖在panel1。触发后可显示panel1,但触发panel2时没法显示?