2012-08-26 39 views
0

我有兩個DropDownButtons(ToolStripDropDownItem) - btn01和btn02如何從按鈕項目創建列表並通過列表填充它們?

我想btn02是一個btn01項目的排序列表。

我目前得到了。

List<string> list = new List(btn01.DropDownItems); // I want to create a list 
list.Sort(); 
btn02.DropDownItems = list; // sorted list should be btn02 items. 

第一行和第三行有語法錯誤。

+0

嗯......你能指點我們DropDownButton的來源嗎?否則,我們不能幫助你,因爲我們不知道'DropDownButton.DropDownItems'是什麼... –

+0

我不確定你的意思是DropDownButton,你能解釋一下嗎?另外我覺得你在第一行中遇到的一個錯誤需要添加你想要的列表的數據類型,所以'新列表(...)' – KingPancake

+0

這些是ToolStripDropDownButtons – Alegro

回答

1

像這樣的東西會工作。

這不是最漂亮的代碼,可以減少很多行,但我想確保它很清晰。

var unorderedList = new List<ToolStripItem>(); 
for (int i = 0; i < toolStripDropDownButton1.DropDownItems.Count;i++) 
{ 
    unorderedList.Add(toolStripDropDownButton1.DropDownItems[i]); 
} 

var orderedList = unorderedList.OrderBy(l => l.Text).ToList(); 
toolStripDropDownButton2.DropDownItems.AddRange(orderedList.ToArray()); 
+0

ThankYou,Nathan – Alegro

1

我覺得第一行上的錯誤是因爲DropDownItems不是字符串的集合,試試這個:

var list = DropDownItems.ToList(); 

如果你希望他們爲字符串,你可以這樣做:

var list = new List<string>(); 
foreach(var item in DropDownItems) 
{ 
list.Add(item.ToString()); 
} 

什麼是DropDownItems?你可以添加一些關於這個控件的更多信息嗎?

+0

這些是ToolStripDropDownButtons – Alegro

+0

好的,這些包含ToolStripDropDownItem ,但我想不出如何枚舉它們,排序,然後把它們回來,對不起..我用這個控件做了一個小的測試解決方案,但找不到解決方案給你。 –

+0

@ Jonas,ThankYou。我想解決方案是有數組的東西,然後將每個元素添加到btn02。我們拭目以待。 – Alegro