Невозможно назначить управление пользовательской панели winforms с конструктором win2008 winforms - PullRequest
1 голос
/ 30 марта 2009

Я унаследовал прототип корпоративного приложения с формой лица (с адресом, телефоном и т. Д.).

Теперь на указанном человеке формы одна метка + текстовое поле является дочерним элементом самой формы, а не панели, которой она визуально принадлежит.

Как изменить родительский элемент управления с формы на существующую панель в конструкторе VS 2008?

Обновление:

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

Обновление 2:

С помощью структуры документа я вижу, что пользовательский «GroupBoxExt», который мы имеем в приложении, неисправен, перетаскивая элемент управления на панель (или просто изменяя положение элемента управления на панели), назначает его форме .

Обновление 3:

Теперь, когда я узнал, что было не так (спасибо за подсказку в плане документа), я зашел в Google и нашел пользовательское групповое поле в CodeGuru . Автор этой артиллерии обнаружил, что вам нужно украсить вашу пользовательскую панель

[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]

чтобы он вел себя как хороший контейнер.

Ответы [ 2 ]

2 голосов
/ 30 марта 2009

Если вы хотите сделать это в конструкторе, то вам нужна панель «Структура документа» (она находится в меню «Вид» в «Другие окна»). Оттуда вы можете перетащить элементы управления по их имени в контуре и переназначить родительский элемент.

Надеюсь, это поможет!

0 голосов
/ 30 марта 2009

Я не уверен точно, что ты спрашиваешь. Вы можете попытаться немного прояснить сценарий?

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

myPanel.Controls.Add(target)

Это должно обновить родителя цели, чтобы быть myPanel.

Если вы пытаетесь сделать это с помощью дизайнера, все, что вам нужно сделать, это перетащить целевой элемент управления на панель, и об этом следует позаботиться.

...