问题如下:我是使用动态增加的DataGridComboBoxColumn
            DataGridViewComboBoxColumn columShort = new DataGridViewComboBoxColumn();
            columShort.HeaderText = "商品代号";
            columShort.AutoComplete = true;
            columShort.DataSource = Product.All();
            columShort.ReadOnly = false;
            columShort.DisplayMember = "ShortName";
            columShort.ValueMember = "Id";
现在,我是想通过传回来的Id来定位到底是选中了哪一项了,也就是初始化要修改时的值,怎么做呢?
dagagridview.currentrow[0].cells[0].Value = "12345678"不行,因为没能确定到DisplayMember、ValueMember,
那个setValue方法又给保护了,不知道有什么解决方法呢?

解决方案 »

  1.   

    重新查询一次,条件就是id=“12345678”,填充到一个ds中,修改的话就用
    ds.Tables["tablename"].Rows[0]["字段"]=".......";
      

  2.   

    可能是我没有说清楚,datatable是动态增加行的,而我的第一列就是这个datagridviewcombobox,第二列是个普通的cell,叫商品名称,跟第一列商品代号是一一对应的,如果我选择了第一列,我可以通过第一列的value来确定第二列,可是我现在在第二列cell 的doubleclick事件中返回一个value来确定这个单元格的值后,我想同时把第一列的DisplayMember、ValueMember的值确定下来,不然程序会报错,因为没有做到一一对应了。
      

  3.   

    单纯给第一列一个value值看起来是可以了,但事实上,程序找不到第一列的ValueMember的
      

  4.   

    列我能查询出来啊
    主要是 不能给那一列DataGridViewComboBoxColumn赋值罢了,这个才是问题所在
      

  5.   

    DataGridViewComboBoxColumn只能用来选择
    要不就修改
    Tables["tablename"]里面所选择的值
      

  6.   

    ((DataGridViewComboBoxColumn)this.dataGridView1.Columns[0]).Items.Add("adfasdfa");
    这是增加的
    属值的你看行不行
    看有不有((DataGridViewComboBoxColumn)this.dataGridView1.Columns[0]).Text
      

  7.   

    请问楼上
    修改
    Tables["tablename"]里面所选择的值
    是什么意思呢
      

  8.   

    关键是我要得是给一个DataGridViewComboBoxColumn赋值,在table里面修改,好像没没办法做到的吧,最多就是一个DisplayMember 值
      

  9.   

    ComboBox的 SelectIndex是可以设置的
      

  10.   

    ComboBox是可以
    DataGridViewComboBoxColumn没有这个selectIndex的
      

  11.   

    columShort.SelectedValue = "123456"