带面板的自有组件

时间:2010-04-14 09:04:55

标签: c# components designer panel

我想创建自己的组件,其中包含另外两个面板。其中一个具有固定内容(如控制按钮等),另一个是标准面板,我可以在设计器中添加其他组件(VS2008)。 我知道我必须创建UserControl,我可以放置我的两个面板。然后我想将我的组件插入到表单中。但我不知道如何创建行为,我只能在组件的第二个面板中添加其他组件(如按钮,标签等)。 有人可以帮我创建这个组件吗?

谢谢。 亚当。

2 个答案:

答案 0 :(得分:2)

以下是一个示例(工作代码片段):

  [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
  }

答案 1 :(得分:0)

我找到了正确的解决方案(我希望)。我在UserControl中添加了一个属性,该属性返回具有此特定属性的内容面板:

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

感谢您的帮助leppie