В WinForms, как я могу создать UserControl
, когда при вставке в форму я могу добавить другие элементы управления внутрь, перетащив их из панели инструментов так же, как со всеми элементами управления контейнерами (панели, групповые поля и т.д.). )? Я попытался добавить элементы управления, отбросив их в своем элементе управления, но затем, когда я перемещаю свой элемент управления, элементы управления, которые я добавил, остаются там, где они есть, чего бы не произошло, если бы вместо моего контроля я использовал бы Panel
(другой элементы управления будут перемещаться вместе с панелью).
Как создать UserControl, в котором вы можете удалить другие элементы управления?
Ответ 1
В отличие от элемента управления Panel
, например, UserControl
не действует как элемент управления контейнером, когда он помещается в другую форму. Существует полная поддержка времени разработки, когда вы сами разрабатываете UserControl
, но его поведение по умолчанию не позволяет ему выступать в качестве конститутивного элемента управления после того, как оно было помещено в другую форму. Вот почему вы не можете добавить к нему другие элементы управления, перетащив их из панели инструментов.
Чтобы добавить этот тип поведения к UserControl
, вам нужно добавить DesignerAttribute
в определение вашего пользовательского интерфейса UserControl
. Например:
using System.ComponentModel;
using System.ComponentModel.Design;
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
public class MyUserControl : System.Windows.Forms.UserControl
{
//...your code here
}
(см. статью эту статью в CodeProject.