[英]C# MessageBox with ComboBox doesn't works
帶有錯誤消息的最后一個MessageBox
不起作用。 該程序崩潰了。 我想使用MessageBox
向用戶顯示他們忘記選擇以下項目之一:Mountenbike,Rennrad或Faltrad。
if (typen.SelectedItem.ToString() == "Mountenbike")
{
mb = new Mountenbike(artikelNr, name, ekPreis, vkPreis);
mbCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Rennrad")
{
rr = new Rennrad(artikelNr, name, ekPreis, vkPreis);
rrCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Faltrad")
{
fr = new Faltrad(artikelNr, name, ekPreis, vkPreis);
frCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem == null)
{
MessageBox.Show("Error - Please enter xyz");
}
您可能會得到一個異常,因為您無法在空引用上實例化方法ToString()
,並假設在您的最后一個else if
語句中,如果未選擇任何內容,則typen.SelectedItem
的值可能為null。
您應先實例化typen.SelectedItem
的值是否為null
然后再針對它實例化任何方法。 可以簡單地做到:
if (typen.SelectedItem == null)
{
MessageBox.Show("Error - Please enter xyz");
return;
}
if (typen.SelectedItem.ToString() == "Mountenbike")
{
mb = new Mountenbike(artikelNr, name, ekPreis, vkPreis);
mbCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Rennrad")
{
rr = new Rennrad(artikelNr, name, ekPreis, vkPreis);
rrCounter++;
MessageBox.Show("Fertig");
}
else if (typen.SelectedItem.ToString() == "Faltrad")
{
fr = new Faltrad(artikelNr, name, ekPreis, vkPreis);
frCounter++;
MessageBox.Show("Fertig");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.