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

Визуальная студия 2005 дизайнер перемещает элементы управления и изменяет размеры формы

Когда я открываю форму в visual studio 2005 (С#), разработчик автоматически изменяет размеры формы и перемещает/изменяет размеры элементов управления, не касаясь дизайнера вообще. Исходный файл изменен, и когда я закрываю конструктор, мне предлагается сохранить файл *.cs. Я попытался заглянуть в визуальные варианты студии без каких-либо успехов. есть идеи? визуальная установка студии или что-то еще? благодаря, Tal

4b9b3361

Ответ 1

Я нашел работу вокруг.

не уверен, что происходит, но я изменил свои свойства отображения. и он отлично работает. вот последовательность: display propertis- > settings tab- > advance. в диалоговом окне предварительного перехода я изменил "Настройки DPI" с Большого (120dpi) на Normal (96 dpi)

Ответ 2

Я работаю над этой проблемой большую часть сегодняшнего дня и нашел несколько интересных вещей: главный источник проблемы, похоже, полагается на привязку. Если я использую стыковку для установки своих элементов управления, вместо привязки, мои проблемы, похоже, уходят. Я нашел пару сообщений в блогах с 2003 года (!), В которых подробно описывается, как использовать докинг вместо привязки и объяснять, как привязка может нарушить конструктор Windows Forms. Кажется, эта проблема может быть старше 7 лет!

Вот сообщения:

Ответ 3

Это связано с AutoScaleMode -property. Вероятно, ваши формы были разработаны с различными настройками DPI или Font, чем у вас сейчас в настройках дисплея Windows. AutoScaleMode -property имеет 4 различных возможных значения: Dpi, Font, Inherit или None. В режиме Dpi или Font ваши формы и элементы управления будут автоматически изменяться в зависимости от настроек экрана Windows.

Итак, установите AutoScaleMode -property на None во всех ваших формах и элементах управления, и они больше не будут автоматически изменены. Попытайтесь создать свои формы, чтобы обеспечить достаточное пространство в каждом элементе управления, чтобы текст соответствовал, даже если размер текста установлен на 125%.

Ответ 4

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

Я нашел простое обходное решение благодаря этот пост. Я просто добавил панель к каждой вкладке и установил ее свойство док-станции для заполнения. Все существующие элементы управления внутри вкладок были перемещены внутри этих панелей. Это работает, даже если элементы управления закреплены сверху, слева и справа.

Работает как минимум для Visual Studio 2013 и 2015.

Ответ 5

Это тот, с которым вы должны жить. Даже в VS2008 такие вещи случаются время от времени. В основном это зависит от содержимого формы (элементы управления, позиции и т.д.), И в VS нет возможности отключить такое поведение.

Когда вы открываете форму в дизайнере, vs runtime восстанавливает визуальный внешний вид из кода. И иногда это делало изменения в этот момент. Также, когда вы просто добавляете один элемент управления в форму, дизайнер полностью перестраивает файлы кода и ресурсов. Это хорошо известная проблема, и, похоже, MS не исправляет ее, потому что они перемещаются в направлении WPF.

Итак, несколько пунктов, чтобы упростить вашу жизнь:

  • Переместиться на VS2008, дизайнер был более последовательным, но все еще перемешал элементы управления в файле .designer.cs.
  • Поместите свой код в один из исходных репозиториев, поэтому, если вы случайно сохранили такую ​​форму, вы можете восстановить ее из репозитория.

Ответ 6

Установка формы Минимальные и максимальные настройки размера для текущего размера были хорошей работой для меня. Это предотвратило изменение размера VS.

Ответ 7

У меня была тривиальная форма с несколькими элементами управления на ней, где ОК и Отмена внизу были сдвинуты, как только форма была открыта в дизайнере VS2013. Такое же поведение наблюдалось в VS2015.

Принятый здесь ответ DPI не решил проблему для меня, и не было никаких проблем с размером формы/заполнением/полями.

Удаление элементов управления, которые сдвинуты и добавление их обратно в форму, решает проблему для меня, как это предлагает ptutt: Дизайнер Visual Studio перемещает элементы управления и добавляет столбцы сетки при открытии формы

В то время как я ценю предложение ryantum и ссылки на использование стыковки [с панелями], как упоминается также в ссылке выше с сообщением в блоге Roland здесь https://weblogs.asp.net/rweigelt/28984, с чем-то таким тривиальным, я бы предпочел просто уйти с удалением/добавлением обратно.

Ответ 8

Я обнаружил, что блокировка элементов управления из меню формата была простым и эффективным решением. VS2013

Ответ 9

У меня была эта проблема с VS 2015. Я использовал панели док-станции с элементами управления, которые неожиданно двигались как их дети. По умолчанию элементы управления будут выровнены влево, но вы можете изменить ориентацию. Мои кнопки перестали двигаться.

Ответ 10

У меня тоже была эта проблема. Каждый раз, когда я открывал конструктора, каждая коробка с якорем "справа" перемещалась примерно на 20 пикселей влево. Кроме того, нижняя часть каждой коробки с якорем "левая" составляла около 200 пикселей вне формы.

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

Я прочитал первое сообщение из ответа ryantm, которое привело меня к решению. По-видимому, это как-то связано с порядком .Net выполняет такие события, как установка размера формы.