我有一个winform应用程序,我有一个面板控件.
我希望能够在面板内滚动并垂直放置控件,然后控制器的当前高度,然后有一个滚动,这将帮助我查看所有控件,我该如何实现?
这也是设计师代码,以防有人想看看代码:
private void InitializeComponent()
{
this.panel1 = new System.Windows.Forms.Panel();
this.SuspendLayout();
//
// panel1
//
this.panel1.AutoScroll = true;
this.panel1.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.panel1.Location = new System.Drawing.Point(12, 12);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(267, 365);
this.panel1.TabIndex = 0;
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(456, 410);
this.Controls.Add(this.panel1);
this.Name = "Form2";
this.Text = "Form2";
this.ResumeLayout(false);
}
解决方法:
由于您有AutoScroll = true,因此您不必执行任何操作.您放置在可见边界下方的面板中的任何控件都将自动在面板中创建适当的滚动距离.
如果要手动覆盖它,请设置AutoScroll = false并使用AutoScrollMinSize属性自行设置画布的大小,例如:
panel1.AutoScrollMinSize = new Size(0, 1200);
您可能还需要考虑将面板锚定到窗体的四个边,或者停靠填充,因为它看起来像一个可调整大小的窗体.同样,面板将为您处理滚动条大小.