2011-03-20 68 views
6

hi i runtime enlaza los datos en el cuadro combinado datagridview. ¿Pero cómo hago para exhibir automáticamente el primer artículo? No puedo encontrar el índice seleccionado de DataGridViewComboBoxColumn.DataGridViewComboBoxColumn establece el índice seleccionado

DataGridViewComboBoxColumn cbStudentCourse = (DataGridViewComboBoxColumn)dgStudentCourse.Columns["studentCourseStatus"]; 
        cbStudentCourse.DataSource = Enum.GetValues(typeof(CourseStudentStatus)); 
        cbStudentCourse.DisplayIndex = 1; 

- Actualización ---
vi a alguien haciendo esto en una solución de 3
LInk
¿Seguro que necesito un código tan largo para tener sólo el primer elemento seleccionado ??????

+0

¿Alguien puede ayudar? – VeecoTech

Respuesta

8

A DataGridViewComboBoxColumn no tiene SelectedIndex, y SelectedValue propiedades. Sin embargo, puede obtener el mismo comportamiento de SelectedValue estableciendo la propiedad Value.

Por ejemplo, en el primer índice, el miembro de valor tiene el valor 2, entonces debe establecer .Value = "2" para establecer el primer índice seleccionado.

Por ejemplo

myDataGridViewComboBoxColumn.Value = "20"; 

En su caso

myDataGridViewComboBoxColumn.Value = CourseStudentStatus.EnumToBeSelected.ToString(); 

Aquí hay más detalles acerca de DataGridViewComboBoxColumn

+0

intenté esto 'cbStudentCourse.ValueMember = CourseStudentStatus.Active.ToString();' pero sigue mostrando – VeecoTech

+0

vacío 'ValueMember' se utiliza para el enlace que necesita para establecer la propiedad 'Valor' –

+0

+1 accidentalmente lo hice; ninguna propiedad de valor encontrado. only valueMember y Valuetype Available –

5

la mejor manera de establecer el valor de una datagridViewComboBoxCell es:

DataTable dt = new DataTable(); 
dt.Columns.Add("Item"); 
dt.Columns.Add("Value"); 
dt.Rows.Add("Item1", "0"); 
dt.Rows.Add("Item1", "1"); 
dt.Rows.Add("Item1", "2"); 
dt.Rows.Add("Item1", "3"); 
DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn(); 
cmb.DefaultCellStyle.Font = new Font("Tahoma", 8, FontStyle.Bold); 
cmb.DefaultCellStyle.ForeColor = Color.BlueViolet; 
cmb.FlatStyle = FlatStyle.Flat; 
cmb.Name = "ComboColumnSample"; 
cmb.HeaderText = "ComboColumnSample"; 
cmb.DisplayMember = "Item"; 
cmb.ValueMember = "Value"; 
DatagridView dvg=new DataGridView(); 
dvg.Columns.Add(cmb); 
cmb.DataSource = dt; 
for (int i = 0; i < dvg.Rows.Count; i++) 
{ 
dvg.Rows[i].Cells["ComboColumnSample"].Value = (cmb.Items[0] as 
DataRowView).Row[1].ToString(); 
} 

Funcionó muy bien conmigo

Cuestiones relacionadas