Estilo en Datagrid

11/07/2006 - 12:17 por Jordi Sanchez | Informe spam
Hola,

Deseo aplicar un estilo a un DataGrid Pero no lo consigo
Lleno el dataGrid con un dataset y luego aplico el estilo... pero no
hace nada, lo veo igual q antes.

Aqui va el codigo del estio:

' crear estilo de tabla para el datagrid
Dim oTableStyle As New DataGridTableStyle
oTableStyle.MappingName = "id"

' crear columnas personalizadas para el estilo del grid
Dim colID As New dgAmpleColum(50)
colID.MappingName = "id"
colID.HeaderText = "ID"
colID.Width = 50

Dim colTAG1 As New dgAmpleColum(150)
colTAG1.MappingName = "tag1"
colTAG1.HeaderText = "TAG 1"
colTAG1.Width = 150

Dim colTAG2 As New dgAmpleColum(70)
colTAG2.MappingName = "tag2"
colTAG2.HeaderText = "TAG 2"
colTAG2.Width = 70

Dim colDH As New dgAmpleColum(70)
colDH.MappingName = "DiaHora"
colDH.HeaderText = "Dia Hora"
colDH.Width = 70

' agregar columnas al estilo
oTableStyle.GridColumnStyles.AddRange(New DataGridColumnStyle()
{colID, colTAG1, colTAG2, colDH})

' aplicar estilo al grid
Me.dgAfom.TableStyles.Add(oTableStyle) >>>>>>>>>>>>>>> NO HACE
NADA!!


Gracias,
 

Leer las respuestas

#1 SoftJaén
11/07/2006 - 14:36 | Informe spam
"Jordi Sanchez" escríbió:

Deseo aplicar un estilo a un DataGrid Pero no lo consigo
Lleno el dataGrid con un dataset y luego aplico el estilo... pero no
hace nada, lo veo igual q antes.

Aqui va el codigo del estio:

' crear columnas personalizadas para el estilo del grid
Dim colID As New dgAmpleColum(50)



Hola, Jordi:

Ignoro el tipo de objeto que representa la variable «dgAmpleColum», pero
creo que no estás configurando correctamente la tabla de estilos. Aquí te
dejo un ejemplo, el cual utiliza el nombre «Clientes» que se supone es el
nombre de un objeto DataTable incluido en la colección Tables del objeto
DataSet:

Dim ts As DataGridTableStyle
Dim cols As DataGridTextBoxColumn

ts = New DataGridTableStyle
With ts
' Nombre de la tabla
.MappingName = "Clientes"
' Color de las filas impares
.AlternatingBackColor = Color.GhostWhite
.BackColor = Color.GhostWhite
.ForeColor = Color.MidnightBlue
.GridLineColor = Color.RoyalBlue
.LinkColor = Color.Teal
.HeaderForeColor = Color.Lavender
.HeaderBackColor = Color.MidnightBlue
.HeaderFont = New Font("Microsoft Sans Serif", 8.0!)
End With

' Configuro las columnas del control DataGrid
cols = New DataGridTextBoxColumn
With cols
' Nombre del campo en la tabla
.MappingName = "IdCliente"
' Nombre de la columna en el control DataGrid
.HeaderText = "Id. Cliente"
' Le asigno a la columna el 20% del tamaño del DataGrid
.Width = Convert.ToInt32(DataGrid1.Width * 0.2)
End With
' Añado la columna a la tabla de estilos.
ts.GridColumnStyles.Add(cols)

cols = New DataGridTextBoxColumn
With cols
.MappingName = "Nombre"
.HeaderText = "Nombre"
.Width = Convert.ToInt32(DataGrid1.Width * 0.7)
End With
ts.GridColumnStyles.Add(cols)

With Me.DataGrid1
' Le asigno la tabla de estilos al control DataGrid
.TableStyles.Add(ts)
' Impido que se puedan modificar los datos del control
.ReadOnly = True
.BackgroundColor = Color.Lavender
.BorderStyle = BorderStyle.None
.CaptionBackColor = Color.RoyalBlue
.CaptionFont = New Font("Microsoft Sans Serif", 8.0!)
.CaptionForeColor = Color.White
.FlatMode = True
.Font = New Font("Microsoft Sans Serif", 8.0!)
.ParentRowsBackColor = Color.Lavender
.ParentRowsForeColor = Color.MidnightBlue
.SelectionBackColor = Color.Teal
.SelectionForeColor = Color.PaleGreen

' Asigno la vista como origen de datos del control DataGrid
.DataMember = "Clientes"
.DataSource = ds
End With

No hace falta especificar todas las propiedades que he indicado, pero las
dejo porque pienso que no están de más. :-)

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares