Не может изменить выражение, потому что это не переменная

Переопределить другие CSS:

    .button{
background: red! important
}
6
задан Noctis 12 September 2014 в 11:25
поделиться

5 ответов

Как рекурсивно прокомментировано, вы должны просто использовать свойство Anchor.

Ошибка возникает, потому что свойство Size выставляет структура, а не ссылочный тип. Свойство Size возвращает копию объекта размера элемента управления. Запись в свойствах Width и Hight этой копии не имеет смысла, потому что это просто временная копия и нигде не защищена памятью.

4
ответ дан 8 December 2019 в 18:41
поделиться

В настоящее время я могу увеличить масштаб изображения с помощью приведенного выше кода, но не меньше.

Некоторые элементы управления имеют свойство MinSize (или подобное). Есть ли у вас какие-либо из этих наборов, так что вы не можете изменить размер меньше?

1
ответ дан 8 December 2019 в 18:41
поделиться
grdNameValueProperties.Size.Width = this.Width - 8;
grdNameValueProperties.Size.Height = this.Height -8;

Этот код выдает ошибку, потому что Size является типом значения, а не ссылочным типом. Чтение этого http://www.yoda.arachsys.com/csharp/parameters.html может помочь объяснить разницу между типами значений и ссылочными типами.

7
ответ дан 8 December 2019 в 18:41
поделиться

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

grdNameValueProperties.Width = this.Width - 8;
grdNameValueProperties.Height = this.Height - 8;

Сказав это, я согласен с комментарием @ recursive о том, что вам, вероятно, следует просто использовать свойство UserControl Anchor , чтобы сделать он "автоматически" изменяет размер.

1
ответ дан 8 December 2019 в 18:41
поделиться

Для первой части -

Во-первых, я бы рекомендовал использовать свойство Anchor в UserControl вместо попытки оценить это самостоятельно. Он работает очень просто и очень надежно для обработки изменения размера окна.

Если вы хотите сделать это, вам, вероятно, следует рассмотреть цепочку от this.ClientSize вместо this.Height и this.Width. Вы, вероятно, устанавливаете слишком большой элемент управления, и это не касается панели или другой вещи, на которой вы сидите, что вызывает всевозможные проблемы.

Вторая часть связана с тем, что gridNameValue Properties.Size.Width член структуры.

Когда вы вызываете gridNameValueProperties.Size, вы возвращаете структуру Size, а затем пытаетесь установить ширину возвращаемой структуры (не оригинала). Вот почему вам нужно установить полный тип значения размера в одном кадре. Создание нового Size () и установка его в gridNameValueProperties.Size - единственный способ заставить это работать.

0
ответ дан 8 December 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: