日期:2014-05-18 浏览次数:21173 次
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (sender != null)
{
if(((DataGridView)sender).SelectedCells[0].ColumnIndex==0) //编辑的是第0列
{
//设置第一列的数据源
//((ComboBox)e.Control).DataSource = ds.Tables[0];
//((ComboBox)e.Control).DisplayMember = "Display";
//((ComboBox)e.Control).ValueMember = "Value";
////当DataGridView中的ComboBox值变化时,生成如下事件
((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(DataGridViewCombox_SelectedIndexChanged);
}
}
}
/// <summary>
/// ////当DataGridView中的ComboBox值变化时触发如下事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DataGridViewCombox_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender != null&&dataGridView1.SelectedCells[0].ColumnIndex==0)//确定发生值变化的是第0列。可根据实际情况调整。
{
int rowIndex =dataGridView1.SelectedCells[0].RowIndex;
//获取第rowIndex行,第1列的Cell
DataGridViewComboBoxCell dgvcbc=(DataGridViewComboBoxCell) dataGridView1.Rows[rowIndex].Cells[1];
dgvcbc.Items.Clear();//清空DataGridViewComboxCell
///////////////////往里填充新的数值。
for (int i = 0; i < 10; i++)
{
dgvcbc.Items.Add(((ComboBox)sender).SelectedItem.ToString() + i.ToString());
}
}
}