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