2012-01-08 5 views
1

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

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

Но когда я прячу ПАНЕЛЬ1, вторая панель скрыта, а также.

Как сделать панель2 не дочерней панелью1?

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

ответ

0

Это обычная авария в дизайнере. Удаление второй панели поверх первой сделает ее дочерней частью первой панели. Две основные стратегии для устранения этой проблемы:

  • View + Other Windows + Document Outline. Нажмите вторую панель в списке и перетащите ее в форму. Вам нужно будет исправить свойство Location вручную, введя его значение в окне «Свойства».

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

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

+0

спасибо, инициализируя его в initializeComponent() работал шарм –

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^