Установить минимальный размер окна в C # .NET - PullRequest
27 голосов
/ 15 марта 2011

У меня проблемы с установкой минимального размера моего окна в приложении C #, над которым я работаю. Я пробовал этот код в конструкторе формы:

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.

Ответы [ 4 ]

48 голосов
/ 15 марта 2011

Поскольку Size является структурой, вы не можете этого сделать.
Вместо этого вам необходимо присвоить новое значение Size свойству, например:

this.MinimumSize = new Size(800, 600);

РЕДАКТИРОВАТЬ Ваш компилятор не так; это путает класс Size со свойством Control.Size.

Чтобы обойти эту несправедливую ошибку, необходимо указать тип с пространством имен:

this.MinimumSize = new System.Drawing.Size(800, 600);

Или вы просто забыли using System.Drawing.

6 голосов
/ 15 марта 2011

Вы должны использовать что-то вроде этого:

this.MinimumSize = new Size(100, 100);

Width и Height используются для получения существующих значений вместо их установки.

Если вы перейдете к определению MinimumSize, вы увидите это:

public override Size MinimumSize { get; set; }

Еще раз подтвердите, что даже если вы решили установить значение дляэто, вы должны передать фактический Size экземпляр.Width и Height - это свойства, строго связанные с экземпляром Size.

3 голосов
/ 15 марта 2011

Это ошибка компилятора:

http://msdn.microsoft.com/en-us/library/wydkhw2c(VS.71).aspx

Основная проблема состоит в том, что свойство члена MinimumSize возвращает структуру - которая является типом значения - и поэтому копируется в локальнуювременная переменная - и это не позволяет вам записать значение обратно в базовое свойство.

Чтобы обойти это, вам нужно присвоить самому MinimumSize:

this.MinimumSize = new Size(800, 600);
3 голосов
/ 15 марта 2011

Вам необходимо непосредственно присвоить свойству MinimumSize:

this.MinimumSize = new Size(800, 600);

По сути, возвращаемое значение свойства MinimumSize всегда является new struct object;компилятор не позволяет назначить это временное значение (как указано в сообщении об ошибке, оно не является переменной).

Этот поток социальных сетей MSDN наиболее поучителен для предмета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...