2011-11-11 12 views
1

私はUserControlのサイズを変更するために、目に見えないコントロールを含むUserControlを表示しています。UserControlを含むリサイズパネル

私は、UserControlを含むPanelのサイズを変更する必要がありますが、私はどのように分かりません。

+0

ユーザーコントロールまたはページからサイズを変更しますか?それは問題ですか? –

+0

ウィンドウコントロール – mggSoft

答えて

5

この動作は処理されます明示的なサイズ設定を行わずにPanelクラスとFormクラスを使用することができます(ユーザーが高DPIモニタを使用しているか、大型または超大規模のフォント設定を使用しているときに導入されるレイアウトのバグはありません)

1)ドッキングされたFlowLayoutPanel 。

Docked

2)あなたのパネルやコンテンツを追加)

GrowAndShrink

3をGrowAndShrinkする真とAutoSizeModeにフォームとFlowLayoutPanelのAutoSizeプロパティを設定します。プログラム隠さ

hiddenPanel.Visible = false; 

Hidden

5)または真

hiddenPanel.Visible = true; 

Visible

に所望のパネルのVisibleプロパティを設定

Design

4)

+0

+1 Panelコントロールに固執していないためです。私は労働のために別のものを提供したいと思います。 –

0

あなたが特定のサイズにサイズを変更したい場合は、背後にあるコードでそれを行うことができます:あなたはからサイズを変更したいところがある場合は、ユーザーコントロールにこのコードを追加することができ

Size panelSize = new Size(500, 500); 
usercontrol1.Parent.Size = panelSize; 

。ユーザーコントロールにこのコード入れ

2

:(。パネルは、ユーザーコントロールよりも大きくなっているか、ユーザーコントロールの横に他のコントロールを持っている場合、例えば)

Size last = new Size(0, 0); 

private void Me_Resize(object sender, System.EventArgs e) 
{ 
    if (last != new Size(0, 0)) { 
     this.Parent.Size = Size.Add(this.Parent.Size, Size.Subtract(this.Size, last)); 
    } 
    last = this.Size; 
} 

もマージンを保持します

+0

のユーザーコントロールから試してみます....... – mggSoft

0

コントロールのサイズを変更するには、コントロールのスケールを呼び出します。

  // To zoom in controls. 
      foreach (Control c in MyFlowLayoutPanel.Controls) 
      { 
       PictureBox ptc = c as PictureBox; 

       if (null != ptc) 
       { 
        Point pt = new Point(2, 2); 
        SizeF sf = new SizeF(pt); 
        c.Scale(sf); 
       } 
      } 

//ズームアウトコントロール。 foreach(MyFlowLayoutPanel.Controls内のControl c) { PictureBox ptc = c as PictureBox;

       if (null != ptc) 
           { 
            SizeF sf = new SizeF(0.5F, 0.5F); 
            c.Scale(sf); 
           } 
          } 
0

あなたは、ユーザーコントロールを含むパネルを持っている場合は、easially焼成によりpanel.Controlsのサイズを変更することができ、私はこのトピックはかなり古いであることを知っているが、私も、私のメソッドを追加したい...

Form1_Resizeイベント。

private void Form1_Resize(object sender, EventArgs e) 
     { 
      foreach (Control control in MasterPanel.Controls) 
      { 
       control.Size = MasterPanel.Size; 
      } 

     } 

コンテンツを適切に固定してください。

関連する問題