2009-12-04 3 views
9

Как разместить форму в правом нижнем углу экрана при загрузке формы? Я использую Visual Basic 2010 Express.Форма позиции в правом нижнем углу экрана в визуальном базисе

Благодаря

EDIT: Я сделал это, и это, кажется, отлично работает.

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

нужно больше информации по этому вопросу: вы используете VB или VB.NET? Знаете ли вы, какую версию? Вы наращиваете приложение MDI/SDI? –

+0

Найдите или разместите? И какая версия VB? –

+0

визуальный базовый 2010 экспресс, на самом деле я имел в виду позиционирование –

ответ

5

Вы должны изменить Form.StartPosition к ручной и изменить расположение свойство формы

например how to set form startup location/position manually?

или

VB.net - Form Start Position Upper Left

использованием Form.StartPosition Property и Form.Location Property

+0

Огромное вам спасибо, получил его –

+0

Это только половина ответа - в равной степени важна и * намного сложнее отследить, хотя на самом деле это то, что должен знать каждый программист на рабочем столе (и на самом деле ключевой вопрос) - как получить размер и местоположение рабочей области рабочего стола. Я последний раз это делал в Delphi, раньше, чем я помню, и я еще не нашел .NET-ответ ... (или, по крайней мере, я не могу вспомнить, как это делается). – Murph

+1

по крайней мере, у меня есть начальная точка –

0

Вы можете прокручивать дочерние формы и выполнять некоторые вычисления на основе свойств верхнего и левого (возможно, захотите объединить эти вычисления с параметрами Width и Height в зависимости от вашего требования «слева внизу»)

HTH, Марк

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

Спасибо, это помогло мне –

+0

Как следует из названия, это только находит его в углу * основного * экрана. С несколькими мониторами это часто будет неправильным и раздражает пользователя. – user1318499

+0

О, ничего себе, кто-то, кто не любит математику, как я. Код отличный, но подход с «Do Until» не красив. – tmighty

3

просто это делает трюк для меня: poitions чуть выше/слева taskar ы случае может быть.

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

центр экрана:

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

правый нижний угол экрана:

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

Если вы хотите, чтобы позиционировать форму на экране курсора на, используйте:

' 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

вы можете попробовать

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

Смежные вопросы