2009-12-04 40 views
9

¿Cómo puedo colocar un formulario en la esquina inferior derecha de la pantalla cuando se carga el formulario? Estoy usando Visual Basic 2010 Express.Forma de posición en la esquina inferior derecha de la pantalla en Visual Basic

Gracias

EDIT: Yo lo hice y parece que funciona muy bien.

Dim x As Integer 
Dim y As Integer 
x = Screen.PrimaryScreen.WorkingArea.Width - 400 
y = Screen.PrimaryScreen.WorkingArea.Height - 270 
Me.Location = New Point(x, y) 
+0

necesita más información sobre este: ¿Está utilizando VB o VB.NET? ¿Sabes qué versión? ¿Está construyendo una aplicación MDI/SDI? –

+0

¿Localiza o coloca? ¿Y qué versión de VB? –

+0

visual basic 2010 express, en realidad quise decir posicionamiento –

Respuesta

5

Es necesario cambiar la Form.StartPosition en Manual y cambie la propiedad Localización de la forma

por ejemplo how to set form startup location/position manually?

o

VB.net - Form Start Position Upper Left

usando Form.StartPosition Property y Form.Location Property

+0

muchas gracias, entiendo –

+0

Eso es solo la mitad de la respuesta - igual de importante y * mucho * más difícil de rastrear, aunque es algo que todo programador de escritorio debería saber (y la realidad pregunta clave) es cómo obtener el tamaño y la ubicación del área de trabajo del escritorio. La última vez que hice esto en Delphi, hace mucho más de lo que me gustaría recordar y aún no he encontrado la respuesta de .NET ... (o al menos no recuerdo haberlo hecho). – Murph

+1

al menos tengo un punto de inicio –

0

Puede recorrer los formularios secundarios y hacer algunos cálculos basados ​​en las propiedades superior e izquierda (puede combinar los cálculos con las propiedades de Ancho y Altura según el requisito para "abajo a la izquierda")

HTH, Marcos

7
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Me.Visible = True 
    Dim x As Integer 
    Dim y As Integer 
    x = Screen.PrimaryScreen.WorkingArea.Width 
    y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height 

    Do Until x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width 
     x = x - 1 
     Me.Location = New Point(x, y) 
    Loop 

End Sub 
+0

Gracias, esto me ayudó –

+0

Como su nombre lo indica, esto solo lo ubica en la esquina de la pantalla * primaria *. Con múltiples monitores, a menudo será el incorrecto y molestará al usuario. – user1318499

+0

Oh wow, alguien a quien no le gustan las matemáticas tanto como yo. El código es excelente, pero el enfoque con "Do Until" no es hermoso. – tmighty

3

simplemente esto hace el truco para mí: poitions justo por encima/izquierdo de taskar s sea el caso. Pantalla

Dim x As Integer 
     Dim y As Integer 
     x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width 
     y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height 
     Me.Location = New Point(x, y) 
3

Centro:

Me.Location = New Point((Screen.PrimaryScreen.WorkingArea.Width - Me.Width)/2, (Screen.PrimaryScreen.WorkingArea.Height - Me.Height)/2) 

Abajo a la derecha de la pantalla de la esquina:

Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, Screen.PrimaryScreen.WorkingArea.Height - Me.Height) 
0

Si desea situar el formulario en el cursor de la pantalla está encendida, el uso:

' Get Active Screen Cursor is On, rather than assuming user on PrimaryScreen 
Dim scr As Screen = Screen.FromPoint(Cursor.Position) 

Me.Location = New Point(scr.WorkingArea.Right - Me.Width, scr.WorkingArea.Bottom - Me.Height) 
0

puedes probar como

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = Screen.GetWorkingArea(Me).Location End Sub

Cuestiones relacionadas