5

パネルコントロールを持つ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);
}
4

2 に答える 2

6

AutoScroll = true になっているので、何もする必要はありません。パネル内の表示境界より下にコントロールを配置すると、パネル内に適切なスクロール距離が自動的に作成されます。

これを手動でオーバーライドする場合は、AutoScroll = false を設定し、AutoScrollMinSize プロパティを使用して自分でキャンバスのサイズを設定します。例:

panel1.AutoScrollMinSize = new Size(0, 1200);

サイズ変更可能なフォームのように見えるため、パネルをフォームの 4 つの側面に固定すること、またはドック フィルを検討することもできます。繰り返しますが、パネルはスクロールバーのサイズを処理します。

于 2012-12-18T23:03:22.393 に答える