Tengo un datagridview en un formulario con algunos datos. La primera columna contiene un botón para eliminar la fila. ¿Cómo podemos deshabilitar este botón o toda la fila en función de alguna condición, por lo que la fila no se puede eliminar?Datagridview, deshabilitar botón/fila
Respuesta
En realidad hay un HowTo en MSDN haciendo exactamente esto.
Editar: Se agregaron algunas otras sugerencias.
Puede hacer invisible la columna del botón.
O si solo desea deshabilitar la eliminación de ciertas filas, puede poner en verdadero o falso en cada propiedad DataGridViewRow
s Tag
y en su controlador de eventos de botón solo eliminará las que están configuradas como falsas. Podría combinar esto simplemente cambiando los colores de primer plano y de fondo de la celda para que parezca deshabilitada, esta coloración podría realizarse probablemente en el controlador de eventos CellFormatting
o algo así para que no tenga que recorrerlo y colorearlo en a mano.
Lo he visto antes, pero tiene que haber una forma mejor. – SoftwareGeek
@BhejaFry: Bueno, mucho de ese código es para que se vea bien. Si no te importa eso, hay muchas otras maneras, agregaré un par de sugerencias a mi respuesta, ya que es más fácil leer allí. –
¿Consideraría simplemente convertir la celda del botón en un cuadro de texto vacío normal deshabilitado?
Dim cell As DataGridViewButtonCell = dgv.row(x).cell(y)
cell = New DataGridViewTextBoxCell()
cell.value = String.Empty
cell.ReadOnly = True
Pierde su apariencia bordeado "botón" y se mezcla con el resto de las células (suponiendo que está utilizando principalmente las DataGridViewTextBoxCells por defecto).
Aquí es el equivalente en C#, además de que se pone gris el campo para que se vea sólo lectura:
var cell = dgv[column, row] = new DataGridViewTextBoxCell();
cell.Value = ""; // ignored if this column is databound
cell.ReadOnly = true;
cell.Style.BackColor = Color.FromKnownColor(KnownColor.Control);
Esta es una entrada antigua, pero me gustaría sugerir lo que hago.
If conditionToDisable Then
Dim cell As New DataGridViewTextBoxCell 'Replace the ButtonCell for a TextCell'
cell.Value = valueForCell 'Set the value again'
grid.Rows(r).Cells(c) = cell 'Override the cell'
End If
Espero que sea útil.
- 1. Cómo deshabilitar la capacidad de seleccionar en un DataGridView?
- 2. Cómo deshabilitar la creación de nuevas filas en un DataGridView?
- 3. Cómo deshabilitar los puntos suspensivos de los textos de celda en WindowsForms DataGridView?
- 4. Cómo deshabilitar una celda de casilla de verificación particular en una columna DataGridView CheckBox
- 5. Cómo deshabilitar la imagen nula en la columna de imagen DataGridView cuando se rellena desde DataTable
- 6. Deshabilitar la ordenación al hacer clic en el encabezado de la columna DataGridView
- 7. La mejor manera de deshabilitar la ordenación del encabezado de columna en DataGridView
- 8. HyperLinks En DataGridView
- 9. Desplazamiento DataGridView con mouse
- 10. datagridview columna índice
- 11. DataGridView CheckBox events
- 12. Eliminar columna de DataGridView
- 13. datagridview exportar a excel
- 14. DataGridView RowCount vs Rows.Count
- 15. Texto vertical en datagridview
- 16. Fusionar celdas en datagridview
- 17. DataGridView: ¿qué hace AllowUserToAddRows?
- 18. Multi "columna" DataGridView C#
- 19. C# - DatagridView y ContextMenu
- 20. WinForms: color DataGridView border
- 21. DataGridView CellSelect y FullRowSelect
- 22. Buena DataGridView tutorial
- 23. Windows Forms - ErrorProvider + DataGridView
- 24. C# Shuffling DataGridView Filas
- 25. DataGridView Ordenar no funciona
- 26. row datagridview click
- 27. Imprimir .NET DataGridView
- 28. DataGridView genera automáticamente columnas
- 29. WinForms - DataGridView - sin celda seleccionada
- 30. WinForms C# DataGridView force refresh
posible duplicado de [¿Cómo desactivo una celda de botón en WinForms DataGrid?] (Http://stackoverflow.com/questions/86096/how-do-i-disable-a-button-cell-in-a -winforms-datagrid) –