2013-04-30 5 views
4

У меня есть форма C# со значительной границей. Я хотел бы установить минимальный размер (850, 760) (начальный размер по умолчанию), но когда я пытаюсь установить значение в меню свойств формы, он меняет его на (850, 720). Я попытался установить его с помощью кода следующим образом:Минимальный размер формы заказа

this.minimumSize = new System.Drawing.Size(850, 760); 

но когда я запускаю код я все еще могу сжать мою форму вертикально. Есть ли у кого-нибудь идеи относительно того, что может быть проблемой?

EDIT: Я использую два монитора, один стандартный 1280x1024 и другой широкоэкранный 1366x768, может это проблема? В этом случае есть ли способ проверить разрешение монитора пользователя и установить минимальный размер на основе этого?

+2

'this.miniumSize' - miniumSize указан неправильно. Он должен быть минимальным, но я чувствую, что это просто опечатка, так как это вызовет ошибку в среде IDE. –

+0

да, это опечатка; код компилирует –

+1

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

ответ

2

Большая часть кода, который выполняется во время выполнения, активна и во время разработки. Это дает дизайнеру Winforms очень приятный пользовательский интерфейс WYSIWYG, но у него есть некоторые неудачные побочные эффекты. Включая разбивку дизайнера и предоставление вам белого экрана Дарна. Или сбой VS на рабочий стол, если вы отпустите это имя.

Это один из таких побочных эффектов, код времени выполнения ограничивает минимальную размерность экрана. Работает и работает во время разработки. Просто попробуйте ввести (0, 3000), чтобы увидеть, что происходит. Вы можете заставить его присвоить свойство в коде.

+0

Интересно. Поэтому, если я правильно понимаю, установка минимальной высоты по коду (как и я) даст желаемые результаты на машине, которая не использует широкоэкранный монитор? –

+1

Я не уверен, чего вы пытаетесь достичь.Обычное использование заключается в том, что вы устанавливаете MinimumSize на минимальный размер, где окно все еще можно использовать. А также установите для параметра AutoScroll значение True, чтобы пользователь с небольшим монитором, который не соответствует параметру MinimumSize, может получить доступ к элементам управления, которые находятся вне экрана. –

+0

Это то, чего я пытаюсь выполнить, хотя я не знал о функции AutoScroll. –

2

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

/// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor. 
    /// </summary> 
    private void InitializeComponent() 
    { 
     this.components = new System.ComponentModel.Container(); 
     this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
     this.Text = "Form1"; 
     this.MinimumSize = new Size(300,300); 
    } 
1

Попробуйте это:

Set FormBorderStyle свойство формы для FixedSingle. Тогда изменение границы рамки будет отключено.

+0

Я не хочу отключать изменение размера. Я хочу установить минимальный размер; пользователь может сделать его больше, если захочет. –

+0

Привет, После установки минимального размера (например, 400 500) в меню свойств вы можете уменьшить его ширину и высоту, чем 400 500? –

+0

Нет, свойство 'minimumSize' работает так, как ожидалось, я просто не могу установить его значение, которое я хочу. –

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