Собственный компонент с панелью - PullRequest
3 голосов
/ 14 апреля 2010

Я хочу создать свой собственный компонент, который состоит из двух других панелей. Один из них имеет фиксированное содержимое (например, кнопки управления и т. Д.), А другой - стандартную панель, куда я могу добавить другие компоненты в конструктор (VS2008). Я знаю, что мне нужно создать UserControl, где я могу разместить свои две панели. Затем я хочу вставить свой компонент в форму. Но я не знаю, как создать поведение, в котором я могу добавить другие компоненты (например, кнопки, метки и т. Д.) Только во вторую панель моего компонента. Может ли кто-нибудь помочь мне с созданием этого компонента?

Спасибо. Адам.

Ответы [ 2 ]

2 голосов
/ 14 апреля 2010

Вот пример (фрагмент рабочего кода):

  [Designer(typeof(NavigationalUserControl.Designer))]
  public partial class NavigationalUserControl : UserControl
  {
    class Designer : ControlDesigner 
    {
      public override void Initialize(IComponent component)
      {
        base.Initialize(component);
        var nc = component as NavigationalUserControl;
        EnableDesignMode(nc.panel2, "ContainerPanel"); 
        EnableDesignMode(nc.bottomPanel, "BottomPanel");
      }
    }

    // rest of normal class
  }
0 голосов
/ 14 апреля 2010

Я нашел правильное решение (надеюсь). Я добавил в свой UserControl свойство, которое возвращает панель содержимого с этим конкретным атрибутом:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public Panel PanelContent
{
   get { return this.panel2; }
}

Спасибо за помощь, леппи

...