Visual Basic.NET - DATAGRID

 
Vista:

DATAGRID

Publicado por Ronald (22 intervenciones) el 26/09/2006 02:27:11
Hola a todos.

Quiero saber como puedo cambiar el ancho a las columnas de un datagrid.

La fuente de datos es un Dataset que uso para obtener los datos de una base de datos.

Es facil hacer "datagrid1.datasource = dataset1" pero todas las columnas me salen el mismo ancho.

¿Se lo puede realizar en vista de diseño? , yo estoy usando VisualStudio.Net 2003.

Saludos
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:DATAGRID

Publicado por thessen (298 intervenciones) el 26/09/2006 08:38:28
Tienes que agregar un TableStyle (propiedad del datagrid) en el que indicas las diferentes columnas que quieres que salgan en tu grid, asi como cabeceras, anchos, fuentes, colores...
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:DATAGRID

Publicado por Fernando (9 intervenciones) el 26/09/2006 13:40:22
va un ejemplo

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dad.Fill(dse, "cliiva")
DataGrid1.DataSource = dse
DataGrid1.DataMember = "cliiva"
DataGrid1.ReadOnly = True
DataGrid1.TableStyles.Clear()
Dim estilo As New DataGridTableStyle()
estilo.MappingName = dse.Tables(0).TableName
estilo.AlternatingBackColor = Color.Bisque
Dim textcol1 As New DataGridTextBoxColumn()
textcol1.MappingName = "nomcliente"
textcol1.HeaderText = "Nombre del cliente"
textcol1.Width = 100
textcol1.TextBox.ForeColor = DataGrid1.SelectionForeColor
textcol1.TextBox.BackColor = DataGrid1.SelectionBackColor
AddHandler textcol1.TextBox.Enter, New EventHandler(AddressOf TextBox_Enter)
estilo.GridColumnStyles.Add(textcol1)
Dim textcol2 As New DataGridTextBoxColumn()
textcol2.MappingName = "nomiva"
textcol2.HeaderText = "Situacion impositiva"
textcol2.Width = 150
textcol2.TextBox.ForeColor = DataGrid1.SelectionForeColor
textcol2.TextBox.BackColor = DataGrid1.SelectionBackColor
AddHandler textcol2.TextBox.Enter, New EventHandler(AddressOf TextBox_Enter)
estilo.GridColumnStyles.Add(textcol2)
Dim checkbox1 As New DataGridBoolColumn()
checkbox1.MappingName = "prueba"
checkbox1.HeaderText = "prueba"
checkbox1.Width = 100
checkbox1.ReadOnly = False
estilo.GridColumnStyles.Add(checkbox1)
DataGrid1.TableStyles.Add(estilo)
DataGrid1.Select(DataGrid1.CurrentRowIndex)

End Sub

Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
DataGrid1.Select(DataGrid1.CurrentRowIndex)
End Sub

Private Sub TextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs)
DataGrid1.Focus()
DataGrid1.Select(DataGrid1.CurrentRowIndex)
End Sub
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:DATAGRID

Publicado por Ronald (22 intervenciones) el 26/09/2006 20:58:15
Hola a todos.

Despues de analizar el codigo que me enviaste, lo adapte a mi problema pero hay un error.
Ya cambia de tamaño las columnas del datagrid, pero ahora los datos de mi base de datos no salen.

Parece que se llenan los datos por que aparece con 12 filas que es igual al nro de de filas que tiene una tabla de mi base de datos Prueba, pero las celdas de datagrid salen en blanco.

Aqui esta el codigo para que vean que pasa:

'**************************************************************************************
'configurando el estilo
Dim estilo1 As New DataGridTableStyle
estilo1.MappingName = "mitabla"

Dim col1 As New DataGridTextBoxColumn
col1.MappingName = "estcol1"
Dim col2 As New DataGridTextBoxColumn
col2.MappingName = "estcol2"
col2.Width = 200
Dim col3 As New DataGridTextBoxColumn
col3.MappingName = "estcol3"
'asignando los estilos de columna
estilo1.GridColumnStyles.Add(col1)
estilo1.GridColumnStyles.Add(col2)
estilo1.GridColumnStyles.Add(col3)

dgd.TableStyles.Add(estilo1)

dstdatos = New DataSet
dstdatos.Tables.Add(dgd.TableStyles(0).MappingName)
dstdatos.Tables(0).Columns.Add("estcol1")
dstdatos.Tables(0).Columns.Add("estcol2")
dstdatos.Tables(0).Columns.Add("estcol3")

SqlDataAdapter1.Fill(dstdatos, "mitabla")
dgd.DataSource = dstdatos
dgd.DataMember = "mitabla"
'**************************************************************************************

saludos
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:DATAGRID

Publicado por Ronald (22 intervenciones) el 28/09/2006 04:22:09
Bueno...

despues de muchos intentos fallidos y leer en tutoriales, logre dar con el problema. ¡ ufa ! que habia sido sencillo.

Para todos los que tengan este mismo problema o parecido o simplemente para informacion del foro, aqui les pongo la solucion. Al codigo propuesto en el comentario anterior solo tienen que añadirle estas lineas al final:

dstdatos.Tables(0).Columns(0).ColumnName = "estcol1"
dstdatos.Tables(0).Columns(1).ColumnName = "estcol2"
dstdatos.Tables(0).Columns(2).ColumnName = "estcol3"

Al parecer la funcion fill del dataadapter no hace coincidir las columnas de datos con los estilos de las columnas, apesar de que se manda como parametro el nombre de la tabla.

Saludos
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:DATAGRID

Publicado por Michael Valles (1 intervención) el 10/10/2006 20:35:09
DateTimePicker en un DataGrid
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