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

Установите минимальный размер окна в С#.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.

4b9b3361

Ответ 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);