Índice de la sección dedicada a .NET (en el Guille) - Migrar de VB6 a .NET

Algunas acciones comunes con los controles



Publicado el 28/Dic/2002
Actualizado el 28/Dic/2002


En esta página iré añadiendo algunas "tareas" comunes o generales que no afectan a un control en particular, (o a un formulario), en cuyo caso, estará en la página de ese control.
Te recomiendo que de vez en cuando revises la página de Migrar de VB6 a .NET ya que allí encontrarás todos los links.

Lo que hay publicado sobre las cosillas genéricas:

 


Posicionar un control, el equivalente a .Move (28/Dic/02)

En VB6, para posicionar un control, (incluso un formulario), podíamos usar asignaciones individuales a las propiedades .Left, .Top, .Width y .Height además de usar el método .Move.
En .NET, las propiedades individuales siguen existiendo, pero también podemos usar otros métodos para posicionar un control (o un formulario): .SetBounds o .Location (para Left y Top) y .Size (para Width y Height).

Nota:
Si te decides a usar Location y/o Size, sólo decirte que a esos métodos no se pueden indicar valores individuales, ya que tendrás que asignarle un valor del tipo que espera: Drawing.Point en el caso de Location y Drawing.Size en el caso de Size.

De estos métodos, el más parecido a .Move sería .SetBounds y los valores que habría que asignarle a ese método son los mismos que a .Move, con la diferencia de que en .Move podíamos indicar algunos y con .SetBounds hay que indicar los cuatro valores.

En el siguiente ejemplo, se posiciona un control a la izquierda de otro y un poco más abajo.

VB6:

With Text1
    Text2.Move .Left, .Top + .Height + 90
End With

 

VB.NET:

With TextBox1
    TextBox2.SetBounds(.Left, .Top + .Height + 8, .Width, .Height)
End With

' también con:
With TextBox1
    Dim p As New Point(.Left, .Top + .Height + 8)
    TextBox2.Location = p
End With

' o si lo prefieres:
With TextBox1
    TextBox2.Location = New Point(.Left, .Top + .Height + 8)
End With

 

C#:

textBox2.SetBounds(textBox1.Left, textBox1.Top + textBox1.Height + 8, 
                   textBox1.Width, textBox1.Height);

// también con:
Point p = new  Point(textBox1.Left, textBox1.Top + textBox1.Height + 8);
textBox2.Location = p;

// o si lo prefieres:
textBox2.Location = new Point(textBox1.Left, textBox1.Top + textBox1.Height + 8);

 


Asignar el foco a un control (28/Dic/02)

Cuando queramos que un control reciba el foco (para que sea el control activo), en VB6 utilizamos el método .SetFocus del control, en .NET hay que usar el método .Focus.

En VB6:

Text2.SetFocus

En VB.NET:

TextBox2.Focus()

En C#:

textBox2.Focus();

 


Centrar un formulario en la parte superior de la pantalla (28/Dic/02)

Algunas de las utilidades que hago, me gusta que se sitúen en la parte superior de la pantalla, pero en el centro de la misma.
Para ello hay que asignar a la propiedad StartUpPosition (para VB6) o StartPosition (para .NET) un valor cero (Manual) y después usar el código que te muestro a continuación:

Para VB6:

Private Sub Form_Load()
    ' centrar el formulario en la parte superior
    Move (Screen.Width - Width) \ 2, 0
End Sub

 

Para VB.NET:

' posicionarla arriba en el centro
Me.Top = 0
Me.Left = (Screen.PrimaryScreen.WorkingArea.Width - Me.Width) \ 2

 

Para C#:

// posicionarla arriba en el centro
this.Top = 0;
this.Left = (Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2;

 


ir arriba

la Luna del Guille o... el Guille que está en la Luna... tanto monta...