Las celdas en DataGridViewComboBoxColumn tienen ComboBoxStyle DropDownList. Significa que el usuario solo puede seleccionar valores del menú desplegable. El control subyacente es ComboBox, por lo que puede tener estilo DropDown. ¿Cómo cambio el estilo del cuadro combinado subyacente en DataGridViewComboBoxColumn? O, más general, ¿puedo tener una columna en DataGridView con menú desplegable donde el usuario puede escribir?Cómo cambiar el estilo de ComboBox de celda en DataGridViewComboBoxColumn
7
A
Respuesta
4
void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl))
{
DataGridViewComboBoxEditingControl cbo =
e.Control as DataGridViewComboBoxEditingControl;
cbo.DropDownStyle = ComboBoxStyle.DropDown;
}
}
2
siguiente solución funciona para mí
private void dataGridView1_CellValidating(object sender,
DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == Column1.Index)
{
// Add the value to column's Items to pass validation
if (!Column1.Items.Contains(e.FormattedValue.ToString()))
{
Column1.Items.Add(e.FormattedValue);
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value =
e.FormattedValue;
}
}
}
private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == Column1.Index)
{
ComboBox cb = (ComboBox)e.Control;
if (cb != null)
{
cb.Items.Clear();
// Customize content of the dropdown list
cb.Items.AddRange(appropriateCollectionOfStrings);
cb.DropDownStyle = ComboBoxStyle.DropDown;
}
}
}
+0
la condición dada, si siempre resulta ser cierto en mi cuadro combinado databounded ... hay un trabajo alrededor ... condición dada: ================= =============================================== if (! Column1.Items.Contains (e.FormattedValue.ToString())) { Column1.Items.Add (e.FormattedValue); dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value = e.FormattedValue; } –
1
if (!Column1.Items.Contains(e.FormattedValue.ToString())) {
Column1.Items.Add(e.FormattedValue);
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = e.FormattedValue;
}
puede volver siempre cierto porque Column1.Items.Contains()
es la búsqueda de String
valores. si e.FormattedValue
no es String
, entonces la comparación fallará.
tratar
if (!Column1.Items.Contains(e.FormattedValue.ToString())) {
Column1.Items.Add(e.FormattedValue.ToString());
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = e.FormattedValue.ToString();
}
o
if (!Column1.Items.Contains(e.FormattedValue)) {
Column1.Items.Add(e.FormattedValue);
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = e.FormattedValue;
}
Cuestiones relacionadas
- 1. DataGridViewComboBoxColumn nombre/valor ¿cómo?
- 2. conjunto seleccionado elemento en una DataGridViewComboBoxColumn
- 3. Cómo obtener el nivel de celda ComboBox para WPF DataGrid?
- 4. ¿Cómo se despliega manualmente un DataGridViewComboBoxColumn?
- 5. DataGridViewComboBoxColumn DataSource?
- 6. ¿Cómo puedo cambiar el estilo de celda en un archivo de Excel con ExcelLibrary?
- 7. Estilo Elementos WPF ComboBox
- 8. Cambiar el formato de un elemento ComboBox
- 9. DataGridView - "Estilo de selección de celda" - Editar celda
- 10. C# ComboBox en estilo DropDownList, ¿cómo configuro el texto?
- 11. Cambiar el estilo de ProgressDialog
- 12. Cambiar el estilo de AlertDialog
- 13. ¿Puedo borrar el contenido de la celda sin cambiar el estilo?
- 14. Cambiar el color de la celda JTable
- 15. DataGridViewComboBoxColumn establece el índice seleccionado
- 16. Cambiar borde de ToolStripComboBox con estilo plano
- 17. ¿Cómo puedo cambiar el estilo de UIBarButtonItem en el código
- 18. Cambiar el estilo CalendarView
- 19. ¿Cómo un Combobox con el estilo csOwnerDrawFixed puede comportarse como el estilo csDropDown?
- 20. Odd ComboBox comportamiento al cambiar el tamaño
- 21. ¿Cómo puedo cambiar el estilo de fuente en ActionBarSherlock
- 22. ¿Cómo cambiar el estilo de las pestañas en Android?
- 23. Cómo cambiar el estilo predeterminado de FireMonkey en Delphi XE2
- 24. ¿Cómo puedo cambiar el estilo de flecha en un JComboBox
- 25. ¿Cómo establecer el color de celda según el valor de celda en ooo-calc?
- 26. ¿Cómo cambiar el color de la celda jqGrid?
- 27. ¿Cómo puedo cambiar el marco textLabel de una celda?
- 28. combobox no utiliza color de resaltado de estilo vcl.
- 29. Cómo cambiar el color de fondo de la celda en la tabla usando el script java
- 30. Cómo establecer el ancho de una celda en un UITableView en estilo agrupado
Este es única idea de la solución. La solución completa requiere una rutina de validación; de lo contrario, DataGridView emitirá una excepción. Una solución útil también suele requerir una lista específica de la celda en el menú desplegable. – chgman