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的排序列表,但没有提供一种方法来比较它们,这使排序变得困难。 –