Проблемы с размером при добавлении .Net UserControl к TabPage - PullRequest
6 голосов
/ 29 апреля 2010

У меня есть сложная программа Windows Forms GUI, которая имеет много автоматизированного управления генерацией и манипуляциями. Одна вещь, которую мне нужно сделать, это добавить пользовательский элемент управления UserControl в недавно созданную вкладку TabPage. Однако, когда мой код делает это, я получаю автоматические события изменения размера, которые делают форматирование уродливым. Без подробного описания всех возможных контейнеров, основная проблема заключается в следующем:

В определенный момент в коде я создаю новую вкладку:

TabPage tempTabPage = new TabPage("A New Tab Page");

Затем я установил для него определенный размер, который я хочу сохранить:

tempTabPage.Width = 1008;
tempTabPage.Height = 621;

Затем я добавляю его в TabControl:

tabControl.TabPages.Add(tempTabPage);

Затем я создаю пользовательский элемент управления, который хочу отображать во вновь добавленной вкладке:

CustomView customView = new CustomView("A new custom control");

Вот здесь и возникает проблема. На этом этапе как tempTabPage, так и customView имеют одинаковый размер без отступов или полей, и они соответствуют размеру, который я хочу им видеть. Теперь я пытаюсь добавить этот новый пользовательский элемент управления UserControl на вкладку следующим образом:

tempTabPage.Controls.Add(customView);

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

Кто-нибудь может дать мне какое-либо указание о том, что искать или что может быть причиной такого рода проблемы?

Спасибо заранее.

Ответы [ 3 ]

12 голосов
/ 09 июня 2010

Для свойства AutoCaleMode в UserControl должно быть установлено значение "Нет".

4 голосов
/ 29 апреля 2010

Если вы хотите, чтобы customView заполнил TabPage.

Используйте Dock вот так:

tempTabPage.Controls.Add(customView);
customView.Dock = DockStyle.Fill;

Тогда customView заполнит пробел в TabPage, но вы должны обработать изменение размера customView, чтобы дочерние элементы управления отображались правильно.

0 голосов
/ 13 августа 2014

У меня была такая же проблема. «AutoScaleMode» в UserControl, установленный на «None», работает для меня.

...