繁体   English   中英

从另一个组合框中选择时,更改另一个组合框项目列表

[英]Change another Combobox Item list when selecting from another Combobox

我有3个字符串数组作为组合框的数据源。

        public string[] monitoringDays =
                         new[] { "Sunday", "Tuesday", "Wednesday",
                        "Thursday", "Friday", "Saturday",
                        "Sunday" };
        public string[] specialtemplates = new[] {
            "GENSET PAD & CANOPY CONSTR",
            "ATS INSTALLATION NSA",
            "GENSET CANOPY PAT",
            "TWR CON SKOM AND MOB",
            "SITE SURVEY ACCESS PASS"
        };

        public string[] templates = new[] {
            "IMPLEMENTATION",
            "SKOM ACESS PASS",
            "LOSR SURVEY ACCESS PASS",
            "SOIL TEST ACCESS PASS",
            "IMPLEM ACU INSTALLATION",
            "SOIL TEST",
            "Site Survey AC Upgrade NSA",
            "AC UPGRADE IMPLEM SA",
            "AC UPGRADE EXT SA",
            "GENSET PAD & CANOPY CONSTR",
            "ATS INSTALLATION NSA",
            "GENSET CANOPY PAT",
            "TWR CON SKOM AND MOB",
            "SITE SURVEY ACCESS PASS"
        };

每个字符串数组都是组合框A和B的数据源。

选择特定的组合框A的项目时,我应该怎么做才能使组合框B的项目列表更改(例如,当我选择星期一时,组合框项目将更改为specialtemplates

我努力了

            if (cbMonitor.SelectedIndex == 1) {
                cboxTemplate.DataSource = specialtemplates;
            }

但这不起作用。 (完全错误)

干杯!

您需要调用Refresh方法,以便它更新组合框数据并反映在UI上:

cboxTemplate.DataSource = specialtemplates;
cboxTemplate.Refresh(); // call this method

在您的监控天中缺少星期一...

您需要在cbMonitor上创建一个SelectedValueChanged事件处理程序,其背后的代码如下:

  private void cbMonitor_SelectedValueChanged(object sender, EventArgs e) { if (cbMonitor.SelectedIndex == 1) cboxTemplate.DataSource = specialtemplates; } 

这样可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM