簡體   English   中英

具有ComboBox的C#MessageBox不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM