首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中设置组合框的选定值

如何在C#中设置组合框的选定值
EN

Stack Overflow用户
提问于 2016-09-04 13:38:53
回答 2查看 1.3K关注 0票数 2

我有两个组合框(比如cbo_zone和cbo_floor ),它们的数据源都是表格

代码语言:javascript
运行
复制
private void load_cbo_zone() 
    { 
        clz_Common_References ccr = new clz_Common_References ();
        DataTable dt_zone = ccr.get_zone_detail();
        cbo_zone.DataSource = dt_zone;
        cbo_zone.ValueMember = "ID";
        cbo_zone.DisplayMember = "zone";
        cbo_zone.SelectedIndex = -1;
    }

`

代码语言:javascript
运行
复制
    private void load_cbo_floor()
    {
        int ID_zone_ref = Convert.ToInt16(cbo_zone.SelectedValue);
        clz_Common_References ccr = new clz_Common_References();
        DataTable dt_flr = ccr.get_floor_data_fr_Ref_IDZone(ID_zone_ref);
        cbo_floor.DataSource = dt_flr;
        cbo_floor.DisplayMember = "Floor";
        cbo_floor.ValueMember = "ID";
        cbo_floor.SelectedIndex = -1;
    }

`。我编写了更新cbo_floor的代码,如下所示。

代码语言:javascript
运行
复制
private void cbo_zone_SelectionChangeCommitted(object sender, EventArgs e)
    {
        load_cbo_floor();
    }

现在,当我单击datagridview的数据行时,我需要更新cbo_zone & cbo_floor。

代码语言:javascript
运行
复制
int ref_area_id, ref_floor_id, ref_zone_id;

        int.TryParse(dt_issued_mat.Rows[0][11].ToString(), out ref_area_id);
        DataTable dt_area_detail = ccr.get_area_data_fr_area_id(ref_area_id);
        int.TryParse(dt_area_detail.Rows[0][2].ToString(), out ref_floor_id);
        DataTable dt_floor_detail = ccr.get_floor_data_fr_floor_id(ref_floor_id);
        int.TryParse(dt_floor_detail.Rows[0][2].ToString(), out ref_zone_id);
        DataTable dt_zone_detail = ccr.get_zone_data_fr_zone_id(ref_zone_id);

在那之后使用

代码语言:javascript
运行
复制
cbo_zone.Text  = dt_zone_detail.Rows[0][1].ToString();
cbo_floor.Text  = dt_floor_detail.Rows[0][1].ToString();

我可以在组合框中显示这些值,但是一旦我尝试获取cbo_floor.SelectedValue代码,它就不工作了。

然后我可以通过使用来获得相关的SelectedIndex,

代码语言:javascript
运行
复制
int index = cbo_zone.FindString(dt_zone_detail.Rows[0][1].ToString());
        cbo_zone.SelectedIndex  = index ;

但是,组合框什么也没有显示& "cbo_zone.SelectedValue“没有显示value.my的目标是获取cbo_floor.SelectedValue。请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2016-09-04 13:50:32

代替cbo_zone.Text = dt_zone_detail.Rows[0][1].ToString(); cbo_floor.Text = dt_floor_detail.Rows[0][1].ToString();

使用

代码语言:javascript
运行
复制
cbo_zone.Items.Add( dt_zone_detail.Rows[0][1].ToString());

cbo_floor.Items.Add ( dt_floor_detail.Rows[0][1].ToString());

票数 0
EN

Stack Overflow用户

发布于 2016-09-04 14:16:48

首先,使用索引不是一个好主意。你有价值,就用它们吧。使用索引会给你带来麻烦。

代码语言:javascript
运行
复制
cbo_zone.SelectedValue = myValue.ToString();//find the value from your data

其次,为了选择楼层,您需要首先用相关的值填充它,因为它已经有了最后一次选择的数据。

代码语言:javascript
运行
复制
  load_cbo_floor();
  cbo_floor.SelectedValue = myValue.ToString();//find the value from your data
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39313850

复制
相关文章

相似问题

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