Ответ 1
Не можете ли вы начать максимизацию?
Задайте для свойства System.Windows.Forms.Form.WindowState
значение FormWindowState.Maximized
Я работаю над VS 2008 с С#. Этот ниже код не работает для меня. Моя форма была разработана с разрешением 1024 x 768.
Наш клиентский ноутбук имеет разрешение 1366 x 768. Чтобы решить эту проблему, я установил ниже код в событии Form Load:
this.Location = new Point(0, 0);
this.Size = Screen.PrimaryScreen.WorkingArea.Size;
но форма не изменяется в соответствии с разрешением экрана, а нижняя часть моей формы скрывается или вырезается, или я пропускаю полосу прокрутки.
Есть ли способ решить эту проблему? Пожалуйста, покажите мне синтаксис. Спасибо заранее
Не можете ли вы начать максимизацию?
Задайте для свойства System.Windows.Forms.Form.WindowState
значение FormWindowState.Maximized
Если вы хотите установить размер формы программно, установите для свойства 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
не изменяет размер восстановленного окна. Таким образом, окно может выглядеть хорошо, пока оно максимизировано, но при восстановлении размер и местоположение окна все еще могут быть неправильными. Поэтому я предлагаю установить размер и местоположение, даже если вы намерены открыть окно максимально.
Вероятно, максимизированная форма помогает, или вы можете сделать это вручную при загрузке формы:
Блок кода
this.Location = new Point(0, 0);
this.Size = Screen.PrimaryScreen.WorkingArea.Size;
И затем, играйте с привязкой, поэтому дочерний элемент управления внутри вашей формы автоматически поместится в вашей новой форме.
Надеюсь, что это поможет,
Задайте свойство формы для открытия в максимизированном состоянии.
this.WindowState = FormWindowState.Maximized;
int h = Screen.PrimaryScreen.WorkingArea.Height;
int w = Screen.PrimaryScreen.WorkingArea.Width;
this.ClientSize = new Size(w , h);
Вы всегда можете указать, чтобы окно начиналось в максимизированном... оно должно дать вам тот же результат... Пример: this.WindowState = FormWindowState.Maximized;
P.S. Вы также можете попробовать (и я не рекомендую это) вычесть высоту панели задач.
просто установите Autoscroll = true
для формы ур-форм.. (это нехорошее решение, но полезно).
попробуйте также для панели (Autoscroll
property = true
)
Вы можете просто установить состояние окна
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;