2011-06-11 36 views
2

嗨我有一个代码读取文本文件并将内容复制到列表框中。 一切工作正常,但是当我在那里是没有项目的地方单击列表框里面,会出现一个新的错误消息,并指出我的财产以后不对这一行:在列表框中没有任何选择时出错

switch (listBox3.SelectedItem.ToString()) { 
    case "Accessories": 
     label4.Text = "None Required"; //Approval 
     label13.Text = " "; //Approval 
     label5.Text = "TTS"; //sent by 
     label6.Text = "IT Co."; //sender 
     label7.Text = "2"; //urgent 
     label8.Text = "3"; //normal 
     label9.Text = "PC Name"; // required filed 1 
     label10.Text = "PC Brand && Model"; // required filed 2 
     label11.Text = "B.C"; // required filed 3 
     label12.Text = "Location"; // required filed 4 
     label14.Text = "User Name"; // required filed 5 
    break; 

这只是一个一段代码和编译器指出的行是这样的:

switch (listBox3.SelectedItem.ToString()) 

我该如何解决这个问题?

+0

什么是编译器错误? – invalidsyntax 2011-06-11 19:14:59

回答

1

尝试这个修复:

if(listBox3.SelectedItem != null) { 
    switch (listBox3.SelectedItem.ToString()) { 
     case "Accessories": 
      label4.Text = "None Required"; //Approval 
      label13.Text = " "; //Approval 
      label5.Text = "TTS"; //sent by 
      label6.Text = "IT Co."; //sender 
      label7.Text = "2"; //urgent 
      label8.Text = "3"; //normal 
      label9.Text = "PC Name"; // required filed 1 
      label10.Text = "PC Brand && Model"; // required filed 2 
      label11.Text = "B.C"; // required filed 3 
      label12.Text = "Location"; // required filed 4 
      label14.Text = "User Name"; // required filed 5 
     break; 
    } 
} 

else { 
    //nothing selected 
} 
+0

这会给你错误完成开关盒的支架 – 2011-06-11 19:17:58

+0

固定,我从OP – killie01 2011-06-11 19:19:05

+0

复制该问题thanx修复它,你是第一个回答 – 2011-06-11 19:36:00

2

您需要检查的selectcted项目是空或不是

if (listBox3.SelectedItem!=null) 
{ 

    // write code for it 

} 
2

要尝试总结一下大家说:

if(listBox3.SelectedItem != null) { 
    switch (listBox3.SelectedItem.ToString()) { 
     case "Accessories": 
      label4.Text = "None Required"; //Approval 
      label13.Text = " "; //Approval 
      label5.Text = "TTS"; //sent by 
      label6.Text = "IT Co."; //sender 
      label7.Text = "2"; //urgent 
      label8.Text = "3"; //normal 
      label9.Text = "PC Name"; // required filed 1 
      label10.Text = "PC Brand && Model"; // required filed 2 
      label11.Text = "B.C"; // required filed 3 
      label12.Text = "Location"; // required filed 4 
      label14.Text = "User Name"; // required filed 5 
     break; 
    } 
} 
+0

注意:条件语句的else部分不需要如显示在选择的答案中。 – Tim 2011-06-11 20:17:25

2

试图从null值调用ToString()(或任何方法)值将yie ld NRE的。如果没有选择任何内容,SelectedItem将最终成为null。您需要事先检查null或使用Convert.ToString()来做到这一点,因为它在给定null值时不会丢失,它只返回字符串"null"

switch (Convert.ToString(listBox3.SelectedItem)) 
{ 
    // etc... 
} 
相关问题