Visual Basic.NET - Dimensionar columnas con DATAGRID

 
Vista:

Dimensionar columnas con DATAGRID

Publicado por SERVIOffice.com (3 intervenciones) el 15/04/2007 07:29:49
Programo en Visual Basic .NET y quiero en un datagrid poder expecificar el tamaño distinto de cada columna, en mi datagrid muestro CODIGO, CONCEPTO, IMPORTE pues quiero que CODIGO tenga una longitud distinta a CONCEPTO ya que CONCEPTO es un texto lardo.

Como puedo refrescar un DATAGRID en un mismo formulario, ya he probado con DATAGRID.Refresh y no funciona.

Me podrías ayudar.

Gracias de antemano.

Jorge
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dimensionar columnas con DATAGRID

Publicado por Nico (64 intervenciones) el 16/04/2007 06:50:35
En vb.net 2003 para poder establecer manualmente el ancho de cada columma del datagrid tenes que crear un datagridtablestyle. Este te permite crear un estilo digamos de diseño del grid. En el estilo tenes que agregar varias DataGridTextBoxColumn con sus respectivas propiedades.
Aca va una funcion que crea y devuelve un estilo. Al datagrid le tenes que agregar el estilo que creaste.

'Codigo----

DataGrid2.DataSource = alquileres
DataGrid2.TableStyles.Clear()
DataGrid2.TableStyles.Add(Estilo(alquileres))

Private Function Estilo(ByVal tabla As DataTable) As System.Windows.Forms.DataGridTableStyle

Dim estilo_datagrid As New DataGridTableStyle

Dim col_num As New DataGridTextBoxColumn
Dim col_fecha As New DataGridTextBoxColumn
Dim col_codpel As New DataGridTextBoxColumn
Dim col_codunid As New DataGridTextBoxColumn
Dim col_valor As New DataGridTextBoxColumn
Dim col_fechadev As New DataGridTextBoxColumn

col_num.MappingName = tabla.Columns(0).ToString
col_fecha.MappingName = tabla.Columns(1).ToString
col_codpel.MappingName = tabla.Columns(2).ToString
col_codunid.MappingName = tabla.Columns(3).ToString
col_valor.MappingName = tabla.Columns(4).ToString
col_fechadev.MappingName = tabla.Columns(5).ToString

col_num.HeaderText = "Numero"
col_fecha.HeaderText = "Fecha"
col_codpel.HeaderText = "Pelicula"
col_codunid.HeaderText = "Unidad"
col_valor.HeaderText = "Valor"
col_fechadev.HeaderText = "Fecha Devolucion"

col_num.Width = 65
col_fecha.Width = 110
col_codpel.Width = 60
col_codunid.Width = 60
col_valor.Width = 80
col_fechadev.Width = 100

estilo_datagrid.GridColumnStyles.Add(col_num)
estilo_datagrid.GridColumnStyles.Add(col_fecha)
estilo_datagrid.GridColumnStyles.Add(col_codpel)
estilo_datagrid.GridColumnStyles.Add(col_codunid)
estilo_datagrid.GridColumnStyles.Add(col_valor)
estilo_datagrid.GridColumnStyles.Add(col_fechadev)
estilo_datagrid.MappingName = tabla.TableName

Return estilo_datagrid
End Function

En el codigo, Alquileres es un datatable. Podes hacer referencia a una tabla dentro de un dataset si queres. Digamos que el estilo en realidad lo basas en el datatable. No vas a crear un estilo que tenga mas columnas que el datatable al que haces referencia.
La propiedad MappingName de las columas vinculas las mismas con las columnas del datatable (es importante establecer esta propiedad). La propiedad header text es el encabezado de las columnas y width es el ancho de las columnas en pixeles.

Bueno espero que me entiendas y que te sirva. Capaz que en vb.net 2005 es distinto.
Suerte!
Nico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dimensionar columnas con DATAGRID

Publicado por SERVIOffice.com (3 intervenciones) el 17/04/2007 12:39:53
Gracias por mandarme esta informaíón.
Te he enviado el programita que estoy desarrollando a tu dirección.
Lo que no entiendo es si tengo que insertar el control DataGrid en el formulario o para dibujarme en el formulario el DataGrid.

Espero tu respuesta, gracias.
Jorge
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dimensionar columnas con DATAGRID

Publicado por Nico (64 intervenciones) el 19/04/2007 05:24:24
El control Datagrid tiene que estar insertado en el formulario. La funcion le aplica un estilo. El datagrid es un control visual (muestra los datos). Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dimensionar columnas con DATAGRID

Publicado por SERVIOffice.com (3 intervenciones) el 19/04/2007 07:11:39
Gracias muchas gracias.
Lo he conseguido, y funciona perfectamente.

Eres genial, Nico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar