【问题标题】:Need to change selected item in dropdown list when selected item in another dropdown list changes当另一个下拉列表中的选定项发生更改时,需要更改下拉列表中的选定项
【发布时间】:2011-01-21 19:50:08
【问题描述】:

我有一个带有两个组合框(下拉列表样式)的 Windows 窗体应用程序。第一个组合框从 AppTable 对象列表中获取数据,如下所示:

foreach (AppTable table in appTableList)
            cbxSelectName.Items.Add(table.App);

我已经设置了一个触发器,用于更改此下拉列表中的所选项目:

this.cbxSelectName.SelectedIndexChanged +=new EventHandler(cbxSelectName_SelectedIndexChanged);

最后,这里是触发器调用的方法的定义。请注意,tbxNewWikiWord 文本框中的值会随着所选项目的变化而变化。但是,在第二个下拉列表(cbxUpdateAppType)中不会发生同样的情况:

private void cbxSelectName_SelectedIndexChanged(object sender, EventArgs e)
    {
        foreach (AppTable table in appTableList)
        {
            if (table.App == cbxSelectName.SelectedItem.ToString())
            {
                this.tbxNewWikiWord.Text = table.WikiWord;
                this.cbxUpdateAppType.SelectedItem = table.Type;
                break;
            }
        }

    }

这是 AppTable 的外观:

class AppTable
{
    public string App { get; set; }
    public string Type { get; set; }
    public string WikiWord { get; set; }

}

我错过了什么吗?

【问题讨论】:

  • 您是否使用table.Type 中出现的内容填充cbxUpdateAppType?请贴出填写cbxUpdateAppType的代码。
  • table.Type 可以包含以下三个值之一:服务、任务或应用程序。但是,我用这三个值手动填充 cbxUpdateAppType,因为如果我在循环中从 table.Type 填充它,它会多次获得相同的值。

标签: c# winforms drop-down-menu


【解决方案1】:

从 AppTable 对象向 cbxUpdateAppType 添加值修复了它。我不知道为什么,因为无论哪种情况,我都在添加字符串。

我只需要检查重复项,这样我的下拉框中就不会出现相同值的多个实例。

foreach (AppTable table in appTableList)
        {
            if (!cbxUpdateAppType.Items.Contains(table.Type))
                cbxUpdateAppType.Items.Add(table.Type);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2022-01-12
    • 1970-01-01
    • 2022-08-12
    • 2013-07-12
    相关资源
    最近更新 更多