4

У меня есть один файл окон, который каждый раз, когда я его открываю в Visual Studio, он увеличивает размер элементов управления в файле конструктора. Если я сохраню форму, закройте ее в редакторе и откройте ее снова, тогда элементы управления будут немного больше, чем раньше. Я вижу, что свойства размера в элементах управления все возрастают в файле конструктора.Как остановить Visual Studio от увеличения элементов управления каждый раз, когда я открываю форму окна?

Может ли кто-нибудь объяснить мне, как исправить это поведение?

+1

Похоже, что размер корректируется как побочный эффект в одной из ваших общедоступных объектов. Вы явно устанавливаете/изменяете размеры в своей форме где угодно? Являются ли эти пользовательские элементы управления вашей формой? – roken

+1

Проверьте свойства: AutoScaleMode, AutoSize, AutoSizeMode – alexm

+0

У вас есть настройка с высоким разрешением? –

ответ

2

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

Это означает, что если вы переопределили свойство формы, а доступ/установка указанного свойства имеет побочный эффект изменения размера элемента управления, эта настройка размера будет отражена в дизайнере. Затем, когда вы сохраняете форму, этот новый размер сохраняется в коде, создаваемом разработчиком. Каждый раз, когда вы снова открываете форму, эта настройка будет происходить.

Это также относится к обработчикам событий для свойств, которые устанавливаются в коде, создаваемом разработчиком.

+0

Я нашел проблему. Я создал собственный элемент управления, унаследованный от SplitContainer. Visual Studio автоматически создала файл конструктора для настраиваемого элемента управления, который устанавливает свойство AutoScaleMode шрифту (почему? Я не знаю). Это заставляло каждый раз увеличивать размер всего содержимого SplitContainer. – NeonD

0

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

Просто откройте конструктор форм, щелкните правой кнопкой мыши и в контекстном меню выберите «Блокировать элементы управления».

enter image description here

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

3

У меня были проблемы с визуальной студии при работе на Windows 8 с HD Рез ноутбук против обычного 1280 х 800 один

окон по умолчанию на новую установку для HD ноутбук должен был увеличить размер шрифта в окна программы на 25%

Посмотрите под разрешение экрана -> Сделайте текст или другие предметы крупнее или меньше -> Выберите «Позвольте мне выбрать один уровень масштабирования для всех моих дисплеев», чтобы увидеть настройку. 125% в моем случае.

Визуальная студия, похоже, устанавливает форму или управляет настройкой AutoScaleMode в соответствии с приведенной выше настройкой.

В дизайнере формы: На ноутбуке с низким разрешением this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F);

Hi res this.AutoScaleDimensions = new System.Drawing.SizeF (7F, 16F);

Смежные вопросы