2008-09-18 33 views
5

Tengo un DataGridView con una columna DataGridViewComboBoxColumn con 3 valores:conjunto seleccionado elemento en una DataGridViewComboBoxColumn

"Pequeño", "Medio", "grande"

le regreso el defecto de los usuarios que en este caso es "Medio"

Quiero mostrar una celda desplegable en la vista de cuadro de datos, pero el valor predeterminado es "Medio". Haría esto en un combobox normal haciendo el índice seleccionado o simplemente punteando la propiedad Text de un cuadro combinado.

Respuesta

5

Cuando ingrese a la vista de cuadrícula de datos, probablemente sea mejor entrar en databinding. Esto se ocupará de todas las materias de índice seleccionadas de las que está hablando.

Sin embargo, si quieres entrar allí por sí mismo,

DataGridView.Rows[rowindex].Cells[columnindex].Value 

le permitirá obtener y establecer el valor asociado a la DataGridViewComboBoxColumn. Solo asegúrese de proporcionar el índice rowindex y columnindex correctos junto con establecer el valor al tipo correcto (el mismo tipo que la propiedad ValueMember de DataGridViewComboBoxColumn).

+0

Esto funciona, pero sólo después de que refleja mudo fuera de dicha célula de la que se define el valor. – IsmailS

+0

Gracias, pasé un montón de años regresando a DataGridViewComboBoxColumn e intentando encontrar mi valor – James

0

¿Está recuperando los datos del usuario y tratando de establecer valores en DataGridView manualmente, o realmente ha vinculado el DataGridVew a una fuente de datos? Porque si usted ha limitado la red a una fuente de datos, usted debe sólo tiene que establecer el DataPropertyName en la columna para que sea el nombre de la cadena de la propiedad del objeto:

[DataGridViewComboboxColumnName].DataPropertyName = "PropertyNameToBindTo"; 

O ¿quiere decir que desea que por defecto a Medio para una nueva fila?

+0

Estoy añadiendo los valores mediante programación utilizando items.AddRange – leora

0

hacer cumplir esta tarea que debe hacer algo como esto: -

  this.dataGridViewStudentInformation.Columns[ColumnIndex].DataPropertyName = dataGridViewStudentInformation.Columns[2].Name ; //Set the ColumnName to which you want to bind. 

y establecer el valor por defecto en la base de datos como media.

2
DataGridViewComboBoxColumn ColumnPage = new DataGridViewComboBoxColumn(); 
ColumnPage.DefaultCellStyle.NullValue = "Medium"; 
+0

Por favor, no publique simplemente el código. Proporcione alguna explicación, información o uso sobre su código. Por ejemplo, vea [esta respuesta] (http://stackoverflow.com/a/16893057/756941). – NAZIK

Cuestiones relacionadas