【问题标题】:C# MessageBox with ComboBox doesn't works带有 ComboBox 的 C# MessageBox 不起作用
【发布时间】:2018-06-08 14:45:21
【问题描述】:

最后一个带有错误消息的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");
}

【问题讨论】:

  • 抛出的异常是什么?还有null检查应该放在第一位

标签: c# if-statement combobox messagebox


【解决方案1】:

您可能会遇到异常,因为您无法在 null 引用上实例化方法 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");
}

【讨论】:

  • 非常感谢!!如果我能够._,我会赞成它。 // 你真的太棒了,你救了我!! ^.^
  • 一个问题,stackoverflow 真的让我很困惑。我怎样才能获得reuptation积分?我无法帮助任何人,因为我仍然是菜鸟,但我想为好的答案投票。这里有什么论坛游戏可以让我获得声望
  • 获得代表的最简单方法是提出高质量的问题并回答可以分享知识的问题。请参阅“什么是声誉?我如何获得(和失去)它?” help center 中的文章,并查看 tour 以及(您将获得徽章!)
猜你喜欢
  • 1970-01-01
  • 2018-10-06
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
  • 2015-12-21
  • 1970-01-01
相关资源
最近更新 更多