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 :-(
y si lo, que seria la propiedad Anchor en .NET, podes porbar redimensioanrlos algo asi:
Redimensionar controles (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/246-redimensionar-controles.htm)
saludos.
Ya lo viera eso buscando en google..
Pero si por ejemplo no lo tengo centrado ni alineado a la derecha/izquierda? :-X
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.
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..
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 :-(