1
Nodo N;  

foreach (string S in listBox_nodos.Items)  
{  
    N = graph.getNodoName(S);  
    string comp = (string) listBox_nodos.SelectedItem;  
    if (comp == S)  
        System.Console.WriteLine(N.NAME);  
}  

我明白InvalidOperationException了,应用程序崩溃了。
不明白为什么。有什么帮助吗?谢谢。

编辑:“N.NAME”打印!然后就崩溃了。
EDIT2:我试图捕捉异常,应用程序无论如何都会崩溃。

4

3 回答 3

1

你在哪一行得到异常?在不知道数据类型listBox_nodos有什么的情况下,我的第一个猜测是它Items不包含很多strings,而是ListBoxItems

foreach (var item in listBox_nodos.Items)  
{  
    N = graph.getNodoName(item.Value); // or .SomethingElse
于 2010-01-02T15:34:20.867 回答
1
  • 如前所述,很高兴看到完整的异常(如果在 VS 调试器中,您可以从异常帮助器对话框或 Debug -> Windows -> Locals 中的 $exception 条目中获取它)。最坏的情况你应该可以尝试 { .. } catch (Exception ex) { System.Console.WriteLine(ex); (异常的 ToString 包括堆栈跟踪)

    • 如果您不确定所涉及的类型,可以将 Items/SelectedItem 作为 IEnumerable/object 获取,然后对其进行 gettype() 并显示。
  • 尝试显示内容时,可能还想尝试 MessageBox.Show 以防万一异常来自控制台的使用出于某种原因。

  • 与异常无关,但看起来您正在对列表框项目进行交互以查找所选项目 - 如果这是真的,为什么不直接使用所选项目?

于 2010-01-02T16:20:21.303 回答
0

我之前也遇到过类似的问题,也与所选项目有关。我对其进行了广泛调查,但无法找到解决方法。我最终重新制作了表格(尽管我认为只有控制是必要的),这似乎解决了它。

于 2012-06-14T20:48:51.010 回答