locked
Achicar el tamaño de los reglones de la grilla y ocupar todo el espacio vb 2005 RRS feed

  • Pregunta

  • Hola! quiero achicar el tamaño de los reglones de la grilla, por ahí leí que era con la función RowsDefaultCellStyle.Font.Size pero no la puedo implementar. Además, no logro hacer que el cuando no hay datos en la grilla, las columnas ocupen todo el espacio de la grilla (que no aparezca lo gris).

    Ojalá alguien sepa como! Gracias!

    viernes, 9 de julio de 2010 22:25

Respuestas

  • Hola JuanPabloSepulveda

    Es muy sencillo, para todo esto se usan los autosizemode tanto de columnas como de lineas, en el evento load del formulario donde tengas el control datagridview puedes hacer esto (o en otro evento, yo lo pongo en el load para setear la grid como quiero antes de cargar datos, pero también puedes cambiar estos valores con los datos cargados):

      Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '#### MODIFICAR EL ANCHO DE LA COLUMNA DE FORMA AUTOMÁTICA ####
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas de la columna.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas de la columna, 
        'sin tener en cuenta la cabecera.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader
        'Calcula el tamaño de la columna, asignandole el tamaño necesario para mostrar todo el texto de la cabecera.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas visibles de la columna.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas visibles de la columna,
        'sin tener en cuenta la cabecera.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader
        'Distribuye todas las columnas para que llenen todo el espacio de la datagrid.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
        'Por defecto: no modificar el ancho de la columna.
        'DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None
    
        '#### MODIFICAR EL ALTO DE LA LINEA A UN VALOR INDICADO POR NOSOTROS ####
        'Calcula el alto de la linea teniendo en cuenta el alto de la fuente de cada linea.
        DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders
        DataGridView1.RowsDefaultCellStyle.Font = New Font("Arial", 25)
      End Sub
    

    Espero que sea lo que necesitabas, lo he probado y redimensiona perfectamente tanto lineas como columnas, ten en cuenta que en las columnas te he puesto todos los valores posibles, debes dejar solo el que te interesa.

    Un gran saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog
    Sigueme en Twitter
    sábado, 10 de julio de 2010 9:25
    Moderador

Todas las respuestas

  • Hola JuanPabloSepulveda

    Es muy sencillo, para todo esto se usan los autosizemode tanto de columnas como de lineas, en el evento load del formulario donde tengas el control datagridview puedes hacer esto (o en otro evento, yo lo pongo en el load para setear la grid como quiero antes de cargar datos, pero también puedes cambiar estos valores con los datos cargados):

      Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '#### MODIFICAR EL ANCHO DE LA COLUMNA DE FORMA AUTOMÁTICA ####
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas de la columna.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas de la columna, 
        'sin tener en cuenta la cabecera.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader
        'Calcula el tamaño de la columna, asignandole el tamaño necesario para mostrar todo el texto de la cabecera.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas visibles de la columna.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
        'Calcula el tamaño de la columna, asignandole el tamaño de la celda más grande entre todas las celdas visibles de la columna,
        'sin tener en cuenta la cabecera.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader
        'Distribuye todas las columnas para que llenen todo el espacio de la datagrid.
        DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
        'Por defecto: no modificar el ancho de la columna.
        'DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None
    
        '#### MODIFICAR EL ALTO DE LA LINEA A UN VALOR INDICADO POR NOSOTROS ####
        'Calcula el alto de la linea teniendo en cuenta el alto de la fuente de cada linea.
        DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders
        DataGridView1.RowsDefaultCellStyle.Font = New Font("Arial", 25)
      End Sub
    

    Espero que sea lo que necesitabas, lo he probado y redimensiona perfectamente tanto lineas como columnas, ten en cuenta que en las columnas te he puesto todos los valores posibles, debes dejar solo el que te interesa.

    Un gran saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog
    Sigueme en Twitter
    sábado, 10 de julio de 2010 9:25
    Moderador
  • Muchas gracias Josue! Era lo que necesitaba!

    Un fuerte abrazo!

    sábado, 10 de julio de 2010 11:11