Как запретить Visual Studio изменять размеры элементов управления?

#visual-studio-2008 #ide

Вопрос:

Visual Studio 2008 SP1 (хотя IIRC, поведение присутствовало и в 2005 году) продолжает изменять размер нескольких элементов управления сеткой (Янус.GridEx, если быть точным) Я использую.

Я могу изменить их размер до нормального, сохранить и скомпилировать просто отлично. Когда он скомпилируется, эти два элемента управления расширятся до смешных значений.

Дополнительная информация: Эта проблема связана с установкой свойства привязки в элементе управления. Если я установлю свойство привязки на противоположные концы (скажем, влево и вправо), когда файл конструктора будет скомпилирован, он установит ширину/высоту элемента управления на ширину/высоту контейнера.

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

Поэтому я предполагаю, что мой настоящий вопрос заключается в том, как заставить дизайнера форм VS уважать мое первоначальное объявление размера, а также свойство привязки.

Комментарии:

1. опубликуйте код из конструктора; вы уверены, что вы также не установили свойство Dock для заполнения?

2. Дока нет. Это не проблема неправильного управления. При запуске приложение запускается так, как и должно быть. Просто в конструкторе высота и/или ширина становятся слишком большими для работы.

3. @[тост]: хорошо. я сталкивался с подобной проблемой только один раз и не смог ее решить — разве что установив что-то в конструкторе, как было предложено выше.

4. Святые угодники, это раздражает. 6 месяцев в проекте в VS2013, и вдруг он начинает это делать. У меня есть элементы управления, которые удваиваются по размеру в конструкторе, другие, которые просто немного блуждают каждый раз, когда он открывается.

5. Я использую (свои собственные) пользовательские элементы управления для элемента управления вкладками. Это был ужасный беспорядок (почти) каждый раз, когда сохранялась форма. Я попытался установить состояние блокировки и свойство AutoScaleMode, но ни то, ни другое не сработало. Что действительно сработало, так это размещение их на панели и привязка панели к странице управления вкладками.

Ответ №1:

У меня была та же проблема. Экземпляры моего пользовательского элемента управления в форме имели эти настройки. якорь — нет авторазмер — ложный док — нет

Он по-прежнему ужасно изменял их размер каждый раз, когда я делал сборку и т. Д.

Я обнаружил, что в пользовательском элементе управления в свойствах дизайна для него был установлен режим автоматического масштабирования шрифта. Я изменил его на «нет», и это устранило проблему.

Комментарии:

1. Это сработало для меня. У меня было два пользовательских элемента управления в форме, которую дизайнер одновременно изменял размер и расположение. У обоих был установлен режим автоматического масштабирования шрифта. Я изменил один на «Нет», и этот пользовательский элемент управления внезапно повел себя и не изменил размер или не переместился, в то время как другой продолжал перемещаться и изменять размер. Поэтому я изменил режим автоматического масштабирования второго пользовательского элемента управления на «нет», и теперь проблемы исчезли. Спасибо за совет!

2. Это тоже была моя проблема. Спасибо, Рич!

Ответ №2:

Обычно я решаю такого рода проблемы, помещая «хороший» код в конструктор формы сразу после вызова InitializeComponent(), поэтому он переопределяет любой беспорядок, который может вызвать магия автоматического конструктора.

Комментарии:

1. Было бы неплохо, если бы дизайнер работал все время, но иногда лучше использовать это решение, чтобы разобраться в работе и двигаться дальше, а не беспокоиться о том, почему у дизайнера есть какие-то недостатки.

2. Это кажется лучшим ответом на мою проблему.

Ответ №3:

В настоящее время я обрабатываю событие изменения размера и устанавливаю размер для двух необходимых элементов управления. Я чувствую, что это немного странно, учитывая предполагаемый эффект свойства якоря.

Ответ №4:

Обычно, когда у меня возникает эта проблема, я в конечном итоге использую Панели и метки (пустой текст) со свойствами док-станции и заполнения на элементах управления, чтобы получить тот же визуальный вид. Будет ли это практично для вашей формы, будет зависеть от того, как она изложена.

Не лучшее решение из-за всех дополнительных элементов управления, но оно выполняет свою работу.

Комментарии:

1. Я попытался добавить панель для обоих элементов управления, но она тоже работала не слишком хорошо.

Ответ №5:

Возможно, я неправильно понимаю вопрос, но я думаю, что вы ищете Заблокированное свойство: http://msdn.microsoft.com/en-us/library/80xxxf69.aspx