全局中定义:
bool endload;
ComboBox cmbcasType = new ComboBox();
加载窗体事件:
endload = false;
cmbcasType.Visible = false;//初始化为不显示
dataGridView1.Controls.Add(cmbcasType);//向在dataGridView中添加这个控件
cmbcasType.DropDownStyle = ComboBoxStyle.DropDownList;//设置下拉列表格式
this.cmbcasType.SelectedIndexChanged += new System.EventHandler(this.cmbcasType_SelectedIndexChanged);//添加combobox事件
endload = true;
combobox事件:
private void cmbcasType_SelectedIndexChanged(object sender, EventArgs e)
{
if (!endload) return;
dataGridView1.CurrentCell.Value = cmbcasType.Text;
dataGridView1.CurrentRow.Cells[6].Value = cmbcasType.SelectedValue.ToString();
cmbcasType.Visible = false;
}
加载数据:
cmbcasType.DataSource = lstdictcas;
cmbcasType.DisplayMember = "chName";
cmbcasType.ValueMember = "code";
在dataGridView中显示:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1) return;
if (e.ColumnIndex == 4)
{
Rectangle R = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);//得到单元格大小
cmbcasType.SetBounds(R.X, R.Y, R.Width, R.Height);//设置combobox大小
cmbcasType.Visible = true;
return;
}
cmbcasType.Visible = false;
}