2013-03-27 94 views
1

我有了邊框樣式的名稱,如列表的下拉列表「虛線,實線,槽......」 我需要改變邊框樣式,所以嘗試這樣的事情如何在面板中更改邊框樣式?

Panel1.BorderStyle = DropDownList1.SelectedItem.ToString(); 

這個我如何填寫下拉列表 DropDownList3.DataSource = Enum.GetValues(typeof(BorderStyle));

但它不起作用。

+0

「它不工作」不告訴我們任何事情。究竟發生了什麼。應該發生什麼? – 2013-03-27 13:40:39

+0

sry,邊框樣式應改爲所選 – user2177768 2013-03-27 13:41:34

+0

您是否希望將SelectedIndex或SelectedItem選擇爲 – MethodMan 2013-03-27 13:42:56

回答

2

嘗試這樣的事情

string selectedStyle = DropDownList1.SelectedItem.ToString(); 

if (selectedStyle == "Dotted") 
{ 
    Panel1.BorderStyle = System.Web.UI.WebControls.BorderStyle.Dotted; 
} 
else if (selectedStyle == "Solid") 
{ 
    Panel1.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid; 
} 
// and so on ... 
0
panel1.BorderStyle = BorderStyle.Fixed3D; 
+0

這絕對不會回答'OP's'問題,他不想硬編碼值 – MethodMan 2013-03-27 13:46:53

+0

thx,但我必須更改爲任何,而不僅僅是fixed3d – user2177768 2013-03-27 13:47:33

0

將這項工作對你

panel1.BorderStyle = (BorderStyle)Enum.Parse(typeof(BorderStyle), 
    DropDownList1.SelectedItem.ToString()); 

您將需要添加在你身邊一些額外的代碼檢查,以防萬一邊框是找不到

從MSDN參考:WebControl BorderStyle

+0

這不會編譯! 'BorderStyle'不是'string'或'object'類型 – 2013-03-27 13:52:10

+0

Bala R這會編譯現在我更新了我的答案對不起初始編碼錯誤。 – MethodMan 2013-03-27 14:17:00

0

我沒有嘗試,但莫比您提供的項目收集與像真實的價值觀:

System.Web.UI.WebControls.BorderStyle.Dotted 
System.Web.UI.WebControls.BorderStyle.Solid 
etc. 

然後嘗試類似:

Panel1.BorderStyle = DropDownList1.SelectedItem; 
1

對於我來說,我會做這樣的事情:

panel1.BorderStyle = (BorderStyle)Enum.Parse (typeof (BorderStyle), DropDownList1.SelectedItem.ToString()); 
+0

+1爲Enum.Parse的想法 – CloudyMarble 2013-03-27 14:02:22