2013-12-17 35 views
0

我是新來的C#,通過教程工作。我試圖添加一個邊框樣式到組合框,我想能夠檢索所有可能的邊框樣式。我怎樣才能獲得所有winform窗體邊框樣式在c#

private void Form1_Load(object sender, EventArgs e) 
    { 
     /* 
     foreach (FormBorderStyle f in FormBorderStyle) 
     { 
     } 
     */ 
     // This return only the current one. 
     FormBorderStyle borderStyleEntry = this.FormBorderStyle; 
     borderSelector.Items.Add(borderStyleEntry); 
    } 
+0

你是什麼意思與*「檢索所有可用」*?你有沒有檢查過[文檔](http://msdn.microsoft.com/en-us/library/hw8kes41.aspx)? – elgonzo

+0

我讀過這頁yea,我的意思是檢索所有可用的:在視覺模式中,當我點擊窗體,並在屬性我尋找窗體邊框樣式我有4-6選項(沒有)數。我想創建一個像這樣的組合框。通過獲取所有這些邊框樣式並將它們添加到組合框中。 –

回答

5

FormBorderStyleEnum。您需要foreach超過Enum的值。

foreach (FormBorderStyle f in (FormBorderStyle[])Enum.GetValues(typeof(FormBorderStyle))) 
{ 
    borderSelector.Items.Add(f.ToString()); 
} 

爲完整的基礎上,通過@elgonzo評論,下面顯示如何獲得Enum值從String回來。

private void borderSelector_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    this.FormBorderStyle = (FormBorderStyle)Enum.Parse(typeof(FormBorderStyle), borderSelector.SelectedItem.ToString()); 
} 
4

您可以將FormBorderStyle枚舉首先轉換爲List<string>,然後將其設置爲數據源的組合框。

List<string> values = Enum.GetNames(typeof(FormBorderStyle)).ToList(); 
comboBox1.DataSource = values; 
+1

請注意,如果您想從組合框的字符串中取回Enum值,則需要使用Enum.Parse(...) – elgonzo