C# 如何使Winform在C中可滚动

C# 如何使Winform在C中可滚动,c#,scrollbar,windows-forms-designer,C#,Scrollbar,Windows Forms Designer,我已经创建了我正在使用的Visual Studio 2012 winform,它具有以下特性: 宽度:812 身高:667 FormBorderStyle:固定三维 在右边放置高度为599px的vScrollBar,这正是我固定格式中的大小。现在我想我的表格高度会比667px高,在滚动条的帮助下,你们可以滚动到表格的底部。让我来描述一下: 现在,如果滚动条textboxs等向下移动,那么我不需要创建什么,这样您就可以看到隐藏在表单下方的文本框 到目前为止,我没有任何代码 有什么可以帮助我的教程吗

我已经创建了我正在使用的Visual Studio 2012 winform,它具有以下特性:

宽度:812 身高:667 FormBorderStyle:固定三维 在右边放置高度为599px的vScrollBar,这正是我固定格式中的大小。现在我想我的表格高度会比667px高,在滚动条的帮助下,你们可以滚动到表格的底部。让我来描述一下:

现在,如果滚动条textboxs等向下移动,那么我不需要创建什么,这样您就可以看到隐藏在表单下方的文本框

到目前为止,我没有任何代码

有什么可以帮助我的教程吗。真的谢谢你的帮助

您可以添加FlowLayoutPanel并将这些属性设置为:

 flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
 flowLayoutPanel1.WrapContents = false;
 flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
 flowLayoutPanel1.AutoScroll = true;
您可以看到滚动条,可以使用面板设计应用程序

或者完全不同,您可以设置this.AutoSize=true;然后将一个控件拖动到表单大小的外部,然后可以看到表单的滚动条。

您可以添加一个FlowLayoutPanel并将这些属性设置为:

 flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
 flowLayoutPanel1.WrapContents = false;
 flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
 flowLayoutPanel1.AutoScroll = true;
您可以看到滚动条,可以使用面板设计应用程序


或者完全不同,您可以设置this.AutoSize=true;然后将一个控件拖动到表单大小的外部,然后,您可以看到表单的滚动条。

您只需尝试一下即可。AutoScroll=true;这将使自动滚动

您只需尝试一下即可。AutoScroll=true;这将使自动滚动

您可以在此处查找帮助:如何在此表单中添加控件?编码还是设计?设置窗体的AutoScroll=true。下面是一个我发现很有用的特殊技巧。我会这样做:添加一个隐藏的选项卡控件,其中有足够多的页面,每个页面都有一个面板,可以在窗口中放入您想要的所有内容。在表单加载时,我会将这些面板添加到窗口中的flowlayoutpanel中。通过这种方式,您可以在designer中执行所有操作,但仍然可以获得超大的可滚动区域。关键是只需单击一下,即可在designer中看到所有这些区域。当然,用户控件也有,但是它们与表单是分开的,所以它们在代码中不能很好地交互。在表单面板上占据空间,所以您至少需要向下滚动,直到找到要更改的页面。在一个标签中,他们都排成一行,有一个漂亮的标题。。这个技巧也是在面板之间切换的最佳方式。。在这里,在启动时将它们放入FLP将很好地解决OP问题。YMMV您可以在此处寻求帮助:如何在此表单中添加控件?编码还是设计?设置窗体的AutoScroll=true。下面是一个我发现很有用的特殊技巧。我会这样做:添加一个隐藏的选项卡控件,其中有足够多的页面,每个页面都有一个面板,可以在窗口中放入您想要的所有内容。在表单加载时,我会将这些面板添加到窗口中的flowlayoutpanel中。通过这种方式,您可以在designer中执行所有操作,但仍然可以获得超大的可滚动区域。关键是只需单击一下,即可在designer中看到所有这些区域。当然,用户控件也有,但是它们与表单是分开的,所以它们在代码中不能很好地交互。在表单面板上占据空间,所以您至少需要向下滚动,直到找到要更改的页面。在一个标签中,他们都排成一行,有一个漂亮的标题。。这个技巧也是在面板之间切换的最佳方式。。在这里,在启动时将它们放入FLP将很好地解决OP问题。YMMV第一个解决方案对我来说更好,因为我在win表单的顶部有菜单,我不需要滚动菜单。谢谢你,伙计!这是你的选择,我更喜欢第二个,感谢@TaW的提议,@kr neki res:你在这里反驳你自己的问题;好吧,我们都知道。。但是,您可能需要考虑使用AutoSoCurLe=真的常规面板。它会很好地滚动,你可以在设计器中处理它,就像处理表单一样;无需使用FLP的方法。FLP非常适合动态创建内容,但对设计师来说,这是一件痛苦的事情,我更愿意把东西放在我想要的地方。有了一个面板,就不需要像间隔器之类的小把戏了。excellet@Taw,你的建议也很好,我已经尝试过了。我建议你在面板中重新安装主控件,并在ToolStripContainer中创建面板的父级。这样你就可以有一个菜单和/或一个状态栏,它不会滚动,但表单的其余部分会滚动。第一个解决方案对我来说更好,因为我在win表单的顶部有菜单,我不需要滚动。谢谢你,伙计!这是你的选择,我更喜欢第二个,感谢@TaW的提议,@kr neki res:你在这里反驳你自己的问题;好吧,我们都知道。。但是,您可能需要考虑使用AutoSoCurLe=真的常规面板。它会很好地滚动,你可以在设计器中处理它,就像处理表单一样;无需使用FLP的方法。FLP对于动态创建的内容来说是很好的,但对于设计者来说却是一件痛苦的事情,因为他们试图使stu浮动
ff我宁愿把它放在我想要的地方..有了一个面板,就不需要像间隔器之类的小把戏了..excellet@Taw,你的建议也很好,我已经尝试过了,我建议你在面板中重新租下主控件,然后在ToolStripContainer中创建面板的父控件。这样,您就可以拥有一个菜单和/或状态栏,它不会滚动,但表单的其余部分会滚动。