you can use cell formatting event like in the below case :-
DataGridViewComboBoxColumn cmbCol;
private void Form7_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("c1",typeof(int));
dt.Columns.Add("c2");
for (int j = 0; j < 5; j++)
{
dt.Rows.Add(j,"c"+j.ToString());
}
DataTable dt2 = new DataTable();
dt2.Columns.Add("c1", typeof(int));
dt2.Columns.Add("c2");
for (int j = 5; j < 10; j++)
{
dt2.Rows.Add(j, "c" + j.ToString());
}
this.dataGridView1.DataSource = dt;
cmbCol = new DataGridViewComboBoxColumn();
cmbCol.DisplayMember = "c2";
cmbCol.ValueMember = "c1";
cmbCol.DataSource = dt2;
this.dataGridView1.Columns.Add(cmbCol);
this.dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
}
void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 2)
{
DataTable dt = this.cmbCol.DataSource as DataTable;
e.Value = dt.Rows[0]["c2"];
}
}
}