2014-10-08 196 views
0

第一件事:不可能使用WPF,因爲它是一個插件(用於SolidWorks)和一個用於WPF的ElementHost導致顯示錯誤。Winforms佈局:展開/摺疊UI部分

我需要使ui元素相對。這意味着,如果我隱藏一些元素,我想要下面的元素來縮小差距。

我嘗試了錨和growandshrink/autosize面板 - 沒有運氣。

UI示例:

[Button] 
[*] Checked RadioButton 
     [TextField] 
     [AnotherTextField] 
[ ] Unchecked RadioButton 
[Button] 

後改變所選RadioButton第二單選按鈕,所有以下因素也應縮小差距,看起來就像這樣:

[Button] 
[ ] Unchecked RadioButton 
[*] Checked RadioButton 
[Button] 
+0

這可能不適......關於使用'樹View'怎麼樣? – 2014-10-08 09:01:36

回答

5

這對於FlowLayoutPanel來說很簡單。將Flow屬性設置爲TopDown。添加一個RadioButton,兩個文本框和另一個RadioButton。在文本框上設置邊距屬性,使其看起來縮進(例如,左= 20),將它們的Visible屬性設置爲False。

然後你只需要非常小的一部分的代碼,以使他們的Visible屬性遵循的單選按鈕的Checked屬性:

private void radioButton1_CheckedChanged(object sender, EventArgs e) { 
     textBox1.Visible = textBox2.Visible = radioButton1.Checked; 
    } 
0

你可以嘗試把儘可能多的面板並將Dock設置爲Top值。在每個面板去控制其中一個。我嘗試了簡單的測試 - 點擊面板上的事件來隱藏它。下面的所有面板都會上去