Como se redimensiona?¿ :S

Iniciado por xassiz_, 24 Octubre 2009, 17:06 PM

0 Miembros y 1 Visitante están viendo este tema.

xassiz_

A ver, yo tengo un Form con sus controles..

Y quiero activar la propiedad de MaxButton, pero cuando lo pruebo y maximizo la ventana, los controles siguen en el mismo sitio sin moverse!

Como hago para que se queden en su posicion respecto a la original?

Cambiarles de tamaño? Redimensionarlos?


Gracias :-(



YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

seba123neo

y si lo, que seria la propiedad Anchor en .NET, podes porbar redimensioanrlos algo asi:

Redimensionar controles

saludos.

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

xassiz_

Ya lo viera eso buscando en google..

Pero si por ejemplo no lo tengo centrado ni alineado a la derecha/izquierda? :-X




YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

seba123neo

y bueno ahi esta el tema, uno debe buscar la forma en que los controles queden en una posicion en la que no importe si se redimensiona y que queden en el mismo lugar o que se agranden segun la relacion del tamaño del form, eso es lo que hace el link anterior, pero ni siquiera con la propiedad avanzada de anchor en .NET se puede hacer todo, debes buscar la forma de posicionar corectamente los controles en el form, sino pone una captura de tu form a ver como es.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

xassiz_

Estaba haciendo un simple WebBrowser, es que tiene un commandbutton en la izquierda y el resto de los commandbutton van seguidos al primero, no se si eso sirve como referencia..




YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

burbu_1

hola xassiz,

Leonardo Azpurua explica bastante bien como puedes hacerlo en

http://social.msdn.microsoft.com/forums/es-ES/vbes/thread/86f62967-9763-4964-a220-671f89f01e53/

Su idea consiste en guardar en una variable el alto y ancho del formulario, y en la propiedad tag de cada uno de los controles, su ancho. alto, tamaño de fuente y posición X e Y en el formulario.

Cada vez que el formulario se redimensiona se calcula la proporcion en que ha variado, y se aplica a todos los controles.

te pongo el  código


Dim xControl As Control
Dim designHeight As Single, designWidth As Single


Private Sub Form_Load()
designHeight = Me.Height
designWidth = Me.Width

For Each xControl In Form1
    xControl.Tag = xControl.Height & "/" & xControl.Width & "/" & xControl.Left & "/" & xControl.Top & "/" & xControl.FontSize
Next
End Sub


Private Sub Form_Resize()
Dim factorH As Single, factorW As Single

factorH = Me.Height / designHeight
factorW = Me.Width / designWidth
For Each xControl In Form1
    Call RescalarControl(factorH, factorW, xControl)
Next
End Sub


Public Sub RescalarControl(factorH As Single, factorW As Single, xControl As Control)
Dim cTop As Single, cLeft As Single, cWidth As Single, cHeight As Single, cFont As Single
Dim v() As String

v = Split(xControl.Tag, "/")
cHeight = v(0) * factorH
cWidth = v(1) * factorW
cLeft = v(2) * factorW
cTop = v(3) * factorH
cFont = v(4) * factorH

With xControl
    .Top = cTop
    .Left = cLeft
    .Height = cHeight
    .Width = cWidth
    .Font.Size = cFont
End With
End Sub


Seguramente tendrás que hacer modificaciones porque no todos los controles tienen todas las propiedades (p.ej. un timer)...........así que no deja de ser un apaño  :-(