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)
- Asignar el foco a un control (28/Dic/02)
- Centrar un formulario en la parte superior de la pantalla (28/Dic/02)
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;