Как установить стартовую позицию winform в правом верхнем углу? - PullRequest
4 голосов
/ 25 октября 2011

Как установить winform стартовую позицию в правом верхнем углу? Я имею в виду, когда пользователь нажимает (запускает) мое приложение winform, winform появится в правом верхнем углу экрана?

Ответы [ 7 ]

14 голосов
/ 25 октября 2011

Используйте событие Load, чтобы изменить положение, как только вы узнаете фактический размер окна после применения пользовательских настроек и автоматического масштабирования:

Public Class Form1
    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        Dim scr = Screen.FromPoint(Me.Location)
        Me.Location = New Point(scr.WorkingArea.Right - Me.Width, scr.WorkingArea.Top)
        MyBase.OnLoad(e)
    End Sub
End Class
2 голосов
/ 25 октября 2011

Вы можете использовать Form.Location, чтобы установить местоположение для точки, которая представляет верхний левый угол формы.

Таким образом, если вы установите для этого параметра «Screenwidth - Formwidth», вы можете расположить форму в правом верхнем углу. Чтобы получить ширину экрана, вы можете использовать свойство Screen.Bounds .

1 голос
/ 06 апреля 2018

Добавьте строку кода в frm.Designer.cs file

this.Location = new Point(0,0);

Примечание. Проверьте, если местоположение уже задано в файле frm.resX, вы можете изменить его там.Или удалите из файла .resX и добавьте указанную выше строку в frm.Designer.cs

В любом случае это будет работать.

0 голосов
/ 01 октября 2018

вы можете использовать это в OnLoad Event вашей формы

 private void dlgTTMSContract_Load(object sender, EventArgs e) {
   int screenWidth = Screen.PrimaryScreen.Bounds.Size.Width;
   int formWidth = this.Width;
   this.Location = new Point(screenWidth - formWidth, 0);
 }
0 голосов
/ 11 июня 2016

При загрузке формы даже отправьте положение окон y = 0 и x = ширина экрана - ширина формы.

, например

private void Form1_Load(object sender, EventArgs e)
{
  this.Location = new Point( Screen.PrimaryScreen.Bounds.Right - this.Width,0);
}

Вы также можете использовать «Screen.GetBounds (this) .Right». Это даст вам координаты экрана, которые содержат вашу форму.

0 голосов
/ 14 августа 2015

Работает нормально у вас:

private void Form1_Load(object sender, EventArgs e)
        {
            this.Location = new Point(Screen.FromPoint(this.Location).WorkingArea.Right - this.Width, 0);
        }
0 голосов
/ 15 июля 2015

Просто добавьте это в событие OnLoad

    Me.Location = New Point(1, 1)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...