Установите минимальный размер окна в С#.NET.
У меня возникли проблемы с установкой минимального размера моего окна в приложении С#, над которым я работаю. Я пробовал этот код в конструкторе формы:
this.MinimumSize.Width = 800;
this.MinimumSize.Height = 600;
Но компилятор говорит:
Невозможно изменить возвращаемое значение 'System.Windows.Forms.Control.MinimumSize', потому что это не переменная
Может кто-нибудь пролить свет на эту проблему для меня?
EDIT:
Использование:
this.MinimumSize = new Size(800,600);
дает:
error CS0118: 'System.Windows.Forms.Form.Size' is a 'property' but is used like a 'type'
Извините, я забыл упомянуть, что я уже пробовал это.
Также забыл упомянуть, что я не использую Visual Studio.
Ответы
Ответ 1
Так как Size
- это структура, вы не можете этого сделать.
Вместо этого вам нужно назначить новое значение Size
для свойства, например:
this.MinimumSize = new Size(800, 600);
EDIT Ваш компилятор неверен; это путает класс Size
со свойством Control.Size
.
Чтобы обойти эту несправедливую ошибку, вам нужно определить тип с пространством имен:
this.MinimumSize = new System.Drawing.Size(800, 600);
Или вы просто забыли using System.Drawing
.
Ответ 2
Вы должны использовать что-то вроде этого:
this.MinimumSize = new Size(100, 100);
Width
и Height
используются для получения существующих значений вместо их установки.
Если вы перейдете к определению MinimumSize
, вы увидите следующее:
public override Size MinimumSize { get; set; }
Еще раз подтвердив, что даже если вы решите установить для него значение, вам необходимо передать фактический экземпляр Size
. Width
и Height
- это свойства, строго связанные с экземпляром Size
.
Ответ 3
Вам нужно назначить непосредственно свойству MinimumSize
:
this.MinimumSize = new Size(800, 600);
В принципе, возвращаемое значение свойства MinimumSize
всегда является новым объектом struct; компилятор не позволяет вам назначать это временное значение (как указано в ошибке, это не переменная).
Этот социальный нить MSDN наиболее интересен в отношении темы.
Ответ 4
Это ошибка компилятора:
http://msdn.microsoft.com/en-us/library/wydkhw2c(VS.71).aspx
Основная проблема заключается в том, что свойство члена MinimumSize возвращает структуру, которая является типом значения, и поэтому копируется в локальную временную переменную, и это мешает вам записать значение обратно в базовое свойство.
Чтобы обойти это, вам нужно назначить самому MinimumSize:
this.MinimumSize = new Size(800, 600);