Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/06/2009, 20:48
Avatar de Dradi7
Dradi7
 
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Agregar una columna a un DataGridView en tiempo de ejecucion

Bueno aca te dejo un ejemplo de como agregar una checkbox en la columna de la grilla

Código vb.net:
Ver original
  1. ' Antes de llenar la Grilla poner este codigo
  2. DataGridGrupo.Columns.Clear()
  3. Dim Obj as new DataGridViewColumn
  4. Dim Col as new DataGridViewCheckBoxColumn
  5. Obj = Col
  6. Obj.HeaderText="Estado" ' el texto que ira en la cabecera
  7. Obj.Name = "Estado" ' Nombre de la Columna de la Grilla
  8. Obj.Width = 50
  9. DataGridGrupo.Columns.add(Obj)
  10. DataGridGrupo.Columns(DataGridGrupo.Columns.Count - 1).DisplayIndex = 0 ' Es para que la columna sea la primera en la grilla
  11.  
  12. ' Luego esta propiedad para la grilla
  13.  
  14. DataGridGrupo.ReadOnly = false ' Esto para que toda la grilla sea editable
  15. DataGridGrupo.DataSource = Nothing ' al inicio no va ningun enlaze de datos
  16.  
  17. ' Aqui va tu codigo del load
  18. '''
  19. '''
  20. '''
  21. 'al final de ese codigo del load hacer este for
  22.  
  23. ' Este for es para que solo sea editable el checkbox de la grilla es decir poder hacerle click
  24. For Col As Integer = 0 To DataGridGrupo.Columns.Count - 1
  25.                         If Not Col = 0 Then
  26.                             DataGridGrupo.Columns(Col).ReadOnly = True
  27.                         End If
  28.                     Next
  29.  
  30. ' Ojo este codigo debe ir para que te funcione al hacer click en el checkbox de la grilla
  31.  
  32. Private Sub DataGridGrupo_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridGrupo.CellContentClick
  33.         If e.RowIndex < 0 Or Not e.ColumnIndex = 0 Then Exit Sub
  34.         If Convert.ToBoolean(DataGridGrupo.Rows(e.RowIndex).Cells(0).Value) Then
  35.             DataGridGrupo.Rows(e.RowIndex).Cells(0).Value = False
  36.         Else
  37.             DataGridGrupo.Rows(e.RowIndex).Cells(0).Value = True
  38.         End If
  39.     End Sub
  40.  
  41. ' el problema consiste en que si no pongo este codigo al hacer click en un checkbox de la grilla este no cambiara a true hasta que otro checkbox sea clickeado o se haga click en la celda de la grilla
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones