2014-03-03 77 views
2

我是新來的WinForms用戶控制,我所試圖做的是一個簡單的形式:的WinForms - 填寫內面板

  • 在我的形式存在的面板。

  • 該面板連接到用戶控制

  • 用戶控件應該充滿面板。

這是我的形式:

public Form1() 
    { 
     InitializeComponent(); 

     UserControl1 userControl = new UserControl1(); 

     panel1.Controls.Add(userControl); 
     userControl.Anchor = ((AnchorStyles)((((AnchorStyles.Top | AnchorStyles.Bottom) 
    | AnchorStyles.Left) | AnchorStyles.Right))); 
     userControl.Dock = DockStyle.Fill; 
    } 

不工作 - >控制利己伸展

pic

+0

爲什麼在代碼級別執行此操作? –

+0

我覺得你的意思是設置用戶控件的Dock屬性而不是面板。設置面板的Anchor和Dock以及用戶控制都不是什麼問題? – jmcilhinney

回答

5

試試這個,

public Form1() 
    { 
     InitializeComponent(); 
     panel1.Dock = DockStyle.Fill; 
     UserControl1 userControl = new UserControl1(); 
     userControl.Dock = DockStyle.Fill; 
     panel1.Controls.Add(userControl); 

    } 

userControl.Dock = DockStyle.Fill;應該調用之前加入PANEL1。

您還需要在UserControl中設置Anchor控件的屬性,以根據面板中的usercontrol拉伸對其進行拉伸。

贊。

Public Sub UserControl1() 

     //This call is required by the designer. 
     InitializeComponent(); 

     //Add any initialization after the InitializeComponent() call. 
     Label1.Anchor = AnchorStyles.Top; 
     Label2.Anchor = AnchorStyles.Right; 
     Label4.Anchor = AnchorStyles.Bottom; 
     Label3.Anchor = AnchorStyles.Left; 
    End Sub 

注:userControl.Dock = DockStyle.Fill;舒展只有用戶控件它自身不控制用戶控件內。要拉伸用戶控件的控件,您需要相應地設置Dock以及Anchor屬性。

+0

無法正常工作。控制無法通過面板 – omriman12

+1

finnaly!我們有一個勝利者.. – omriman12

0

您需要停靠您的用戶控制,以及。對接面板使它停靠在表格上,但不是UserControl

userControl.Dock = DockStyle.Fill; 
+0

是的,我編輯了我的答案,結果相同。 – omriman12

+0

你需要停靠'panel1'以及'userControl'而不是任何一個。你需要爲**這兩個** –

+0

停靠這兩個來填充,相同的結果 – omriman12