首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有ComboBox的C# MessageBox不起作用

带有ComboBox的C# MessageBox不起作用
EN

Stack Overflow用户
提问于 2018-06-08 07:16:36
回答 1查看 519关注 0票数 0

出现错误消息的最后一个MessageBox不起作用;程序只是崩溃。我想使用MessageBox向用户显示他们忘记选择其中一个项目: Mountenbike、Rennrad或Faltrad。

代码语言:javascript
复制
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");
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 07:34:06

您可能会得到一个异常,因为您不能在null引用上实例化方法ToString(),因为您的最后一条else if语句假定,如果未选择任何内容,typen.SelectedItem的值可能为null。

在针对typen.SelectedItem实例化任何方法之前,应该先检查它的值是否为null。这可以简单地完成如下操作:

代码语言:javascript
复制
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");
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档