Visual Studio 2008 SP1 (хотя IIRC, поведение присутствовало и в 2005 году) продолжает изменять размер пары элементов управления сеткой (точнее, Janus.GridEx), которые я использую.
Я могу вернуть их к нормальному размеру, сохранить и скомпилировать. Когда он все-таки компилируется, эти два элемента управления будут расширяться до нелепых значений.
Больше информации: Эта проблема связана с установкой свойства Anchor для элемента управления. Если я устанавливаю свойство Anchor на противоположные концы (скажем, Left и Right), когда файл Designer компилируется, он устанавливает ширину / высоту элемента управления равными ширине / высоте контейнера.
Кажется, что в файле Designer свойство Anchor установлено перед свойством Size. Ручное редактирование (я знаю, позор мне) файла, чтобы сначала поместить свойство Size, не помогает, поскольку, когда файл Designer компилируется, он, кажется, тоже переписывается с нуля.
Итак, я предполагаю, что мой настоящий вопрос заключается в том, как заставить конструктор форм VS уважать мое первоначальное объявление размера, а также свойство Anchor.
Док отсутствует. Проблема не в том, что контроль действует неправильно. При запуске приложение работает должным образом. Просто в дизайнере высота и / или ширина становятся слишком большими, чтобы работать с ними.
@ [тост]: хорошо. Я сталкивался с подобной проблемой только однажды и не смог ее решить - кроме как путем установки вещей в конструкторе, как было предложено выше.
Боже, это раздражает. Через 6 месяцев работы над проектом в VS2013 он вдруг начал это делать. У меня есть элементы управления, которые вдвое больше в дизайнере, другие, которые просто немного блуждают при каждом открытии.
Я использую (свои) пользовательские элементы управления на вкладке. Это был ужасный беспорядок (почти) каждый раз, когда форма сохранялась. Я попытался установить заблокированный статус и свойство AutoScaleMode, но ни один из них не работал. Что действительно работало, так это размещение их на панели и закрепление панели на странице управления вкладками.





Обычно, когда у меня возникает эта проблема, я использую панели и метки (пустой текст) со свойствами Dock и Padding в элементах управления, чтобы получить такой же визуальный вид. Будет ли это практичным для вашей формы, будет зависеть от того, как она выложена.
Не лучшее решение из-за всех дополнительных элементов управления, но оно выполняет свою работу.
Я попытался добавить панель для обоих элементов управления, но это тоже не сработало.
В настоящее время я обрабатываю событие Resize и устанавливаю размер для двух необходимых элементов управления. Я чувствую, что это немного путаница, учитывая предполагаемый эффект свойства Anchor.
Обычно я решаю такие проблемы, помещая «хороший» код в конструктор формы сразу после вызова InitializeComponent (), чтобы он перекрыл любой беспорядок, который может вызвать магия автоматического конструктора.
Было бы хорошо, если бы дизайнер работал все время, но иногда лучше использовать это решение, чтобы разобрать работу и двигаться дальше, чем беспокоиться о том, почему у дизайнера есть некоторые недостатки.
Кажется, это лучший ответ на мою проблему.
Возможно, я неправильно понимаю вопрос, но я думаю, что вы ищете свойство Locked: http://msdn.microsoft.com/en-us/library/80xxxf69.aspx
У меня такая же проблема. У экземпляров моего пользовательского элемента управления в форме были эти настройки. якорь - нет autosize - false док - нет
Он по-прежнему ужасно менял их размер каждый раз, когда я делал сборку и т. д.
Я обнаружил, что в пользовательском элементе управления в свойствах дизайна для режима автомасштабирования установлен шрифт. Я изменил его на «Нет», и проблема была решена.
У меня это сработало. У меня было два пользовательских элемента управления в форме, размер и расположение которых дизайнер изменял. В обоих режимах автомасштабирования был установлен шрифт. Я изменил одно на «Нет», и этот пользовательский элемент управления внезапно начал себя вести и не менял размер и не перемещался, в то время как другой продолжал перемещаться и изменять размер. Поэтому я изменил режим автомасштабирования второго пользовательского элемента управления на «Нет», и теперь проблемы исчезли. Спасибо за совет!
Это тоже была моя проблема. Спасибо, Рич!
выложить код от дизайнера; Вы уверены, что не установили для свойства Dock значение Fill?