【发布时间】:2012-09-07 07:12:16
【问题描述】:
我在 .net 中有一个 winform,我放置了太多控件并设置了表单的高度和宽度。 但是当我编译表单并减小表单的大小时,我的控件不可见。当我增加表单的大小时,控件在它们自己的位置可见。
我希望当我减小表单大小时出现滚动条,而当我们增加表单大小时滚动条消失。
【问题讨论】:
-
请,请,请使用更短的句子。真的很难理解你的问题...
我在 .net 中有一个 winform,我放置了太多控件并设置了表单的高度和宽度。 但是当我编译表单并减小表单的大小时,我的控件不可见。当我增加表单的大小时,控件在它们自己的位置可见。
我希望当我减小表单大小时出现滚动条,而当我们增加表单大小时滚动条消失。
【问题讨论】:
您需要将 Panel 控件用作子控件的容器并设置“AutoScroll” 属性为真。
【讨论】:
将 true 设置为 Form 的 AutoScroll 属性。
【讨论】:
您可以使用 Panel、TabControl 或 SplitContainer 控件作为容器,并将所有控件放入其中。将 Panel 控件的 AutoScroll 属性设置为 true 以获取窗体上的滚动条。将 Panel 控件停靠到 Fill 以便它出现在整个表单上。
谢谢。
【讨论】:
有一点需要记住的是,
将表单的 AutoScroll 属性设置为 true。
运行时,当窗体有控件直到高度结束时,如果窗体末尾不包含任何控件并且上面只有空间,则此 AutoScroll 属性不起作用。
【讨论】:
在面板中添加对窗体的所有控件,在窗体的 Load 事件中编写以下代码并将窗体的自动滚动属性设置为 true。
private void Form1_Load(object sender, EventArgs e)
{
Panel my_panel = new Panel();
VScrollBar vScroller = new VScrollBar();
vScroller.Dock = DockStyle.Right;
vScroller.Width = 30;
vScroller.Height = 200;
vScroller.Name = "VScrollBar1";
my_panel.Controls.Add(vScroller);
}
【讨论】:
在您的表单加载事件中编写此代码,您将获得滚动条,就像我在表单加载事件中编写它一样。
private void Form1_Load(object sender, EventArgs e)
{
Panel my_panel = new Panel();
VScrollBar vScroller = new VScrollBar();
vScroller.Dock = DockStyle.Right;
vScroller.Width = 30;
vScroller.Height = 200;
vScroller.Name = "VScrollBar1";
my_panel.Controls.Add(vScroller);
}
【讨论】: