面板垂直滚动

Laz*_*ale 5 c# panel visual-studio-2010 winforms

我有一个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);
}
Run Code Online (Sandbox Code Playgroud)

Lar*_*ech 5

由于您具有AutoScroll = true,因此您无需执行任何操作。您在面板中置于可见边界下方的任何控件都将自动在面板中创建适当的滚动距离。

如果要手动覆盖它,请设置AutoScroll = false并使用AutoScrollMinSize属性自己设置画布的大小,例如:

panel1.AutoScrollMinSize = new Size(0, 1200);
Run Code Online (Sandbox Code Playgroud)

您可能还需要考虑将面板锚定到窗体的四个侧面或停靠填充,因为它看起来像是可调整大小的窗体。同样,面板将为您处理滚动条的大小。