Busqué y busqué por Internet, encontré muchas personas con el mismo problema que yo, pero ninguna con la solución
La pregunta es simple... ¿Cómo obtener y establecer el SelectedIndex de un DataGridViewComboBoxCell ?
Tengo por ejemplo el siguiente código:
Código:
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("Id", Type.GetType("System.Byte"));
DataColumn dc2 = new DataColumn("Nombre", Type.GetType("System.String"));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
DataRow dr1 = dt.NewRow();
DataRow dr2 = dt.NewRow();
DataRow dr3 = dt.NewRow();
dr1["Id"] = 0;
dr2["Id"] = 1;
dr3["Id"] = 2;
dr1["Nombre"] = "Libre";
dr2["Nombre"] = "Regular";
dr3["Nombre"] = "Aprobada";
dt.Rows.Add(dr3);
dt.Rows.Add(dr2);
dt.Rows.Add(dr1);
DataGridViewComboBoxColumn co = new DataGridViewComboBoxColumn();
co.HeaderText = "Estado";
co.Name = "Estado";
co.Width = 78;
co.DataSource = dt;
co.DisplayMember = "Nombre";
co.ValueMember = "Id";
co.FlatStyle = FlatStyle.Flat;
dataGridView1.Columns.Add(co);
dataGridView1.Columns[6].ReadOnly = false;
Hasta ahí todo bien, al dataGridView1 que tengo con 5 columnas y 52 filas se le agrega una sexta columna con combobox en cada celda, las cuales tienen 3 opciones para elegir.
Ahora el problema está en que quiero establecer el item seleccionado en cada combobox (por ejemplo, para algunos el 0, para otros el 1 y para otros 2).
Intento hacerlo con el siguiente código pero no pasa absolutamente nada:
Código:
private void setComboBoxCellsValues()
{
DataGridViewComboBoxCell dd;
foreach (DataGridViewRow ro in dataGridView1.Rows)
{
dd = (DataGridViewComboBoxCell)ro.Cells["Estado"];
if (ro.Cells["CódigoEstado"].Value != null)
{
dd.Value = (Byte)ro.Cells["CódigoEstado"].Value;
//ro.Cells["Estado"].Value = 2;
//dd.Value = dd.Items[2];
}
}
}
¿Alguien me podría decir cómo puedo hacer para seleccionar el index de cada comboboxcell?
Espero que puedan ayudarme, saludos.