【问题标题】:Having issues populating ComboBox with values after selection of other ComboBox C#在选择其他 ComboBox C# 后使用值填充 ComboBox 时出现问题
【发布时间】:2019-02-12 19:33:07
【问题描述】:

在用户在第一个组合框中选择一个值后,我在尝试将值放入另一个组合框时遇到问题

private void ClassComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ClassComboBox.Items.ToString().Equals("Warrior"))
        {
            RoleComboBox.Items.Add("Tank");
            RoleComboBox.Items.Add("DPS");

        }


    }

这是我到目前为止所拥有的,因为一旦玩家选择了他们的战士职业,他们的角色就只能是以下值之一。问题是当我运行它时,我的 RoleComboBox 中没有值。如果有人可以提供帮助,那就太好了。谢谢

【问题讨论】:

  • 作为建议,我会考虑创建一个类并设置组合框的数据源。当您扩展程序时,它将更容易限制框的内容。试试看这个:stackoverflow.com/questions/2417960/…
  • 你上面的代码真的运行了吗?是否将值添加到RoleComboBox.Items,如调试器中所见?
  • @mmathis 条件是这里的问题,因为您不能以这种方式将 ObjectCollection 转换为字符串,我不是 100% 确定为什么这没有出错,但条件永远不会是真的。
  • @JacobJAShanks 哎呀,我读错了那个代码。当然,它不会出错,因为它是将字符串与字符串进行比较。 ComboBox.Items.ToString() 不会返回任何有意义的东西(可能只是完整的类型),但它仍然是一个字符串。

标签: c# winforms


【解决方案1】:
private void ClassComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ClassComboBox.SelectedItem.ToString() == "Warrior")
    {
        RoleComboBox.Items.Add("Tank");
        RoleComboBox.Items.Add("DPS");

    }


}

这可能有用吗?我在手机上,所以无法在 Visual Studio 中进行测试

【讨论】:

  • 我会在添加项目之前清除列表,以防第二次调用,这样您就不会重复。 RoleComboBox.Items.Clear();
  • @TrevorJohnson 如果对您有帮助,您介意将其标记为答案吗? :)
猜你喜欢
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多