Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Gridview Que Se Muestre Entero
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Gridview Que Se Muestre Entero 
 
Buenas!.

A lo mejor es un error de principiante.  
La verdad es que cuando no se hacen cosas con formularios, se olvidan.

Tengo un gridview en un formulario. A este gridview le voy a cambiar el número de columnas y como es natural, los títulos de estas.
Pueden tener mas o tener menos títulos. En principio no tengo definido un tamaño de estas.

Este es el código:

Private anchogrid As Integer

Public Sub Form_Open()
  
End

Public Sub _new()

  Dim titulos As String[] = ["Nombre", "Apellidos", "Edad", "Sexo", "Dirección"]
  Dim ncolum As Integer = titulos.Count
 
  Print GrdDatos.Width
  encabezado(ncolum, titulos)
  
 
  
End

Public Sub encabezado(ncolum As Integer, lista As String[])

  Dim x As Integer
  
  With GrdDatos
    .Header = 3
    .Columns.Count = ncolum
    For x = 0 To ncolum - 1
      .Columns[x].Title = lista[x]
      .Columns[x].Alignment = Align.Center
' Descomentar despues de ejecutar por primera vez
'       .Columns[x].Width = 50
'       .Width += 100
    Next
    
  End With
  
  
  Print GrdDatos.Width
  
  'Descomentar despues de ejecutar por primera vez
  ' With Me
  '   Me.Width = GrdDatos.Width
  ' End With
  
End
 


Se mostraría algo como esto:

 capturagridview

Los dos números que hay debajo es lo que "demuestra" que el área del Grdiview no se amplia a lo ancho.
Es una ventana de dibujo que le van a salir dos barras de scroll con la que vamos a poder desplazarnos
para ver su contenido. No cambia el tamaño del ancho del Gridview por que cambiemos o añadamos mas columnas.
Esta todo dentro de una ventana.

El fallo es que podamos pensar que si vamos ampliando el número de columnas se deban mostrar todas.
( Que creamos que se está cambiando el ancho del gridview)

Realmente este formulario. El control del GridVIew tiene las propiedades Autoresize a "True" y "Expand" a True.
Luego el formulario tiene Arrangement a "Fill" y Autoresize a "True"

Y no cambia nada.

Entonces lo que se me ocurrió es que lo que veis comentado. Era que segun se van añadiendo tamaños de columnas,
se va añadiendo ese valor al ancho del Gridview.

Public Sub encabezado(ncolum As Integer, lista As String[])
  
  Dim x As Integer
  
  With GrdDatos
    .Header = 3
    .Columns.Count = ncolum
    For x = 0 To ncolum - 1
      .Columns[x].Title = lista[x]
      .Columns[x].Alignment = Align.Center
      'Descomentar despues de ejecutar por primera vez
      '.Columns[x].Width = 80
      '.Width += 80
    Next
    
  End With
  
  Print GrdDatos.Width
  
  'Descomentar despues de ejecutar por primera vez
  ' With Me
  '   Me.Width = GrdDatos.Width
  ' End With
  
End
 


Mostrándose de esta forma:

 anchogridcambiado

Como veis, si ha cambiado el ancho del GridView. No veo otra forma.  
En este caso es solo un componente en un formulario,

Saludos

ContenedorGrid.tar.gz
Descripción:  
Descargar
Nombre del archivo: ContenedorGrid.tar.gz
Tamaño: 12.43 KB
Descargado: 28 veces
ContenedorGrid.tar.gz
Descripción:  
Descargar
Nombre del archivo: ContenedorGrid.tar.gz
Tamaño: 12.43 KB
Descargado: 28 veces
ContenedorGrid.tar.gz
Descripción:  
Descargar
Nombre del archivo: ContenedorGrid.tar.gz
Tamaño: 12.43 KB
Descargado: 28 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 29 Febrero 2016, 13:45; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Que Se Muestre Entero 
 
a) No entiendo nada de qué es lo que quieres ver/hacer con ésto.

b) ¿Por qué usas .header = 3 y no la constante más explícita?

   
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Que Se Muestre Entero 
 
Shordi:

Citar:

a) No entiendo nada de qué es lo que quieres ver/hacer con ésto.


Tenía la vaga idea de que según iba añadiendo columnas, gambas le daría un tamaño por defecto a estás columnas,
con lo que el ancho del gridview iría aumentando. Como el ancho del gridview iría aumentando. Estando este gridview
dentro del formulario, se expandería el gridview y por lo tanto el propio ancho del formulario.

(Eso era lo que suponía antes). Ahora ya veo que es solo un dibujo. Que lo que se amplia es el exterior de este
y no su interior. Para mi antes, casi era un todo.  

Citar:

b) ¿Por qué usas .header = 3 y no la constante más explícita?


Es por costumbre mal adquirida. Tan poco creo que decir gridview.both diga mucho.
¿ No es más rápido cuando se conoce el valor, decir 3 ?.
Son tres valores, no tiene mas.  

Cuando usamos el color rojo, usamos gb.red. Al menos es una constante.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 29 Febrero 2016, 19:16; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Que Se Muestre Entero 
 
Retocando el procedimiento, hay un parámetro que no es necesario, quedando de esta forma:
La lista de campos ya le dice cuantas columnas son.

Public Sub encabezado(lista As String[])
  
  Dim x As Integer
  
  With GrdDatos
    .Header = GrdDatos.Both
    .Columns.Count = lista.Count
    For x = 0 To lista.Max
      .Columns[x].Title = lista[x]
      .Columns[x].Alignment = Align.Center
      'Descomentar despues de ejecutar por primera vez
      '.Columns[x].Width = 80
      '.Width += 80
    Next
    
  End With
  
  Print GrdDatos.Width
  
  'Descomentar despues de ejecutar por primera vez
  ' With Me
  '   Me.Width = GrdDatos.Width
  ' End With
  
End
 


Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gridview Que Se Muestre Entero 
 
Si vas a jugar con el ancho de los campos, dos detalles:

grid.Column[n].width = -1


Te proporciona un ancho "automático" basado en el ancho del título de la columna.

grid.Column[n].Expand=true


Te proporciona un ancho automático y variable según el tamaño del Gridview.

Jugando con eso puedes hacer maravillas...      

En la clase xGrid, que subí hace un tiempo el comportamiento es:

Existe un array de anchos para las columnas. Si no es especifica ancho para una columna concreta, el valor es -1, si se especifica, el ancho es el especificado y si se especifica -2 la columna es de ancho variable.

Puedes mezclar los tres comportamientos en el array y mola.

Saludos
 




===================
No podemos regresar
 
última edición por shordi el Martes, 01 Marzo 2016, 11:46; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron