Подтвердить что ты не робот

Как установить Windows Form на любое разрешение экрана?

Я работаю над VS 2008 с С#. Этот ниже код не работает для меня. Моя форма была разработана с разрешением 1024 x 768.

Наш клиентский ноутбук имеет разрешение 1366 x 768. Чтобы решить эту проблему, я установил ниже код в событии Form Load:

this.Location = new Point(0, 0);
this.Size = Screen.PrimaryScreen.WorkingArea.Size;

но форма не изменяется в соответствии с разрешением экрана, а нижняя часть моей формы скрывается или вырезается, или я пропускаю полосу прокрутки.

Есть ли способ решить эту проблему? Пожалуйста, покажите мне синтаксис. Спасибо заранее

4b9b3361

Ответ 1

Не можете ли вы начать максимизацию?

Задайте для свойства System.Windows.Forms.Form.WindowState значение FormWindowState.Maximized

Ответ 2

Если вы хотите установить размер формы программно, установите для свойства StartPosition значение Manual. В противном случае ваш собственный алгоритм позиционирования и калибровки будет мешать вашим. Вот почему вы испытываете проблемы, упомянутые в вашем вопросе.

Пример. Вот как я изменяю размер формы на полпути между ее первоначальным размером и размером рабочей области экрана. Я также центрирую форму в рабочей области:

public MainView()
{
    InitializeComponent();

    // StartPosition was set to FormStartPosition.Manual in the properties window.
    Rectangle screen = Screen.PrimaryScreen.WorkingArea;
    int w = Width >= screen.Width ? screen.Width : (screen.Width + Width) / 2;
    int h = Height >= screen.Height ? screen.Height : (screen.Height + Height) / 2;
    this.Location = new Point((screen.Width - w) / 2, (screen.Height - h) / 2);
    this.Size = new Size(w, h);
}

Обратите внимание, что установка WindowState только FormWindowState.Maximized не изменяет размер восстановленного окна. Таким образом, окно может выглядеть хорошо, пока оно максимизировано, но при восстановлении размер и местоположение окна все еще могут быть неправильными. Поэтому я предлагаю установить размер и местоположение, даже если вы намерены открыть окно максимально.

Ответ 3

Вероятно, максимизированная форма помогает, или вы можете сделать это вручную при загрузке формы:

Блок кода

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

this.Size = Screen.PrimaryScreen.WorkingArea.Size;

И затем, играйте с привязкой, поэтому дочерний элемент управления внутри вашей формы автоматически поместится в вашей новой форме.

Надеюсь, что это поможет,

Ответ 4

Задайте свойство формы для открытия в максимизированном состоянии.

this.WindowState = FormWindowState.Maximized;

Ответ 5

int h = Screen.PrimaryScreen.WorkingArea.Height;
int w = Screen.PrimaryScreen.WorkingArea.Width;
this.ClientSize = new Size(w , h);

Ответ 6

Вы всегда можете указать, чтобы окно начиналось в максимизированном... оно должно дать вам тот же результат... Пример: this.WindowState = FormWindowState.Maximized;

P.S. Вы также можете попробовать (и я не рекомендую это) вычесть высоту панели задач.

Ответ 7

просто установите Autoscroll = true для формы ур-форм.. (это нехорошее решение, но полезно).

попробуйте также для панели (Autoscroll property = true)

Ответ 8

Вы можете просто установить состояние окна

this.WindowState = System.Windows.Forms.FormWindowState.Maximized;