Запретить дочерние компоненты при наложении панели - PullRequest
1 голос
/ 08 января 2012

У меня есть приложение WinForms, которое имеет две панели, которые по отдельности содержат компонент usercontrol (по одной на каждой панели).Однако, поскольку обе панели имеют одинаковый размер и находятся в одном месте, самая верхняя панель становится дочерней по отношению к другой панели.Я хочу иметь возможность скрыть одну панель и затем показать другую панель:

this.panel1.visibile = false;
this.panel2.visibile = true;

Но когда я скрываю панель1, вторая панель также скрывается.

Как я могу сделать панель2не дочерний элемент panel1?

Мне нравится быть проще, потому что я новичок в программировании на C #.

Ответы [ 2 ]

0 голосов
/ 08 января 2012

Это обычная авария в конструкторе.Если уронить вторую панель поверх первой, она станет дочерней по отношению к первой панели.Две основные стратегии, чтобы исправить это:

  • Вид + Другие окна + Схема документа.Нажмите вторую панель в списке и перетащите ее на форму.Вам нужно будет исправить свойство Location вручную, введя его значение в окне свойств.

  • Держите верхний левый угол второй панели чуть левее или сверху.первой панели.Поместите его в нужное место в конструкторе формы, назначив его свойство Location после вызова InitializeComponent ().

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

0 голосов
/ 08 января 2012

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

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

...