日期:2014-05-18  浏览次数:20873 次

datagridviewcombobox的SelectedIndexChanged事件
private void button2_Click(object sender, EventArgs e)
  {
  DataRow dr = dt.NewRow();
  dt.Rows.Add(dr);//添加行
  DataGridViewComboBoxColumn colNm
  datebase db=new datebase();
  colNm.DataSource=db.ReturnCboShangpinNameDs().Tables[0];
  colNm.DisplayMember = "shangpinname";//绑定数据集 shangpinname为商品名称
  this.dgvJinhuowupin.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dgvJinhuowupin_EditingControlShowing);
  }

private void dgvJinhuowupin_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
  {
  ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(JinhuoAdd_SelectedIndexChanged);
  }

  void JinhuoAdd_SelectedIndexChanged(object sender, EventArgs e)
  {
   

  string a = ((ComboBox)sender).Text;//a的值为商品名称
   
  datebase db = new datebase();  
  SqlDataReader srd=db.ReturnSdr(a); //根据商品名称查出--商品编号,商品规格,单价
  while (srd.Read())
  {
  this.dgvJinhuowupin.CurrentRow.Cells["商品编号"].Value = srd.GetValue(0).ToStrin();
  this.dgvJinhuowupin.CurrentRow.Cells["商品规格"].Value=srd.GetValue(1).ToString();
  this.dgvJinhuowupin.CurrentRow.Cells["单价"].Value = srd.GetValue(2).ToString();
   
  }
 
  }

当我添加第一行时 第一行的cmobobox SelectedIndexChanged事件好用
当我添加第二行时 第一行的cmobobox SelectedIndexChanged事件好用
当我在回到第一行单击combobox 时报错
设置datasource属性后无法修改项集合

------解决方案--------------------
dataGridViewComboBoxColumn.DataSource 绑定之后是不允许直接修改..

所以解决办法只有将所有"选项"一次性绑定到DataGridViewComboBoxColumn, 或将数据放到BindingSource再绑定到dataGridViewComboBoxColumn.DataSource..

最后再对BindingSource执行筛选操作, 达到联动效果..
------解决方案--------------------
楼主先试一下我的说的属性看一下。