private SortedList<ToolStripMenuItem, Form> forms = new SortedList<ToolStripMenuItem, Form>();
private void MainForm_Load(object sender, EventArgs e)
{
formsAdd(menuCommandPrompt, new CommandPrompt());
formsAdd(menuLogScreen, new LogScreen()); //Error
}
private void formsAdd(ToolStripMenuItem item, Form form)
{
forms.Add(item, form); //Failed to compare two elements in the array.
form.Tag = this;
form.Owner = this;
}
我無法理解它爲什麼會拋出錯誤。表單加載事件的第二行發生錯誤。無法比較陣列中的兩個元素
formsAdd方法只是簡單地將form和toolstip元素添加到數組(表單),並將標記和窗體所有者設置爲此。在第二次調用函數時,它會引發錯誤。
CommandPrompt, LogScreen /* are */ Form //s
menuCommandPrompt, menuLogScreen /* are */ ToolStripMenuItem //s
請例外詳細。它看起來像你創建了一個ToolStripMenuItem的排序列表,但沒有提供一種方法來比較它們,這使排序變得困難。 –