Исправление положения формы - PullRequest
2 голосов
/ 04 февраля 2009

Я запускаю приложение winform [.NET 3.5, C #], где в основной форме приложение запускается в определенном указанном месте. Вызываю следующий код в конструкторе для этого

    private void SetFormPosition()
    {
        this.StartPosition = FormStartPosition.Manual;
        this.Left = Screen.PrimaryScreen.WorkingArea.Right - this.Width;
        this.Top = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height;            
    }

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

Возможно, я мог бы «коснуться» события «Местоположение», но я не уверен, будет ли это очень элегантно.

Пожалуйста, предложите.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 04 февраля 2009

Вы можете установить FormBorderStyle на None. Это дает дополнительное преимущество, заключающееся в удалении панели в верхней части окна, которая дает пользователям ложное представление о том, что они должны иметь возможность перемещать окно.

2 голосов
/ 04 февраля 2009

Я согласен с другими, что вы, вероятно, не должны этого делать, но если вам нужно, продолжайте читать.

Вы можете переопределить метод SetBoundsCore и предотвратить любое перемещение. Мы используем это для предотвращения изменения размеров по вертикали в некоторых реализациях UserControl (например, в тех, которые содержат ComboBox или другой элемент управления с фиксированной высотой), но оно также отвечает за изменение расположения.

Начинается следующее:

    protected override void SetBoundsCore(
             int x, int y, int width, int height, BoundsSpecified specified)
    {
        x = this.Location.X;
        y = this.Location.Y;
        //...etc...
        base.SetBoundsCore(x, y, width, height, specified);
    }
0 голосов
/ 26 июля 2017

Просто измените это

Location = new Point(this.Width,this.Height);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...