自定义控件的子控件支持设计模式
生活随笔
收集整理的這篇文章主要介紹了
自定义控件的子控件支持设计模式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://www.codeproject.com/Articles/37830/Designing-Nested-Controls? ?
?
? 假如一個(gè)復(fù)合控件由一個(gè)ToolStript和一個(gè)TextBox組成,如何使ToolStript獲得設(shè)計(jì)時(shí)支持, 在設(shè)計(jì)時(shí)可以像使用普通ToolStript一樣添加/刪除控件?
??????直接把ToolStript設(shè)為Public是無(wú)法達(dá)到目的的。必須定義一個(gè)用于為組件實(shí)現(xiàn)設(shè)計(jì)時(shí)服務(wù)的Designer
public?partial?class?UserControl1?:?UserControl
??????MyDesigner繼承自System.Windows.Forms.Design.ControlDesigner 類(lèi), 它提供了一個(gè)方法“EnableDesignMode”。使用它將啟用子控件的設(shè)計(jì)時(shí)功能,但需要將子控件公開(kāi)為主控件的屬性。
???? 全部代碼如下:
public?partial?class?UserControl1?:?UserControl
{
public?UserControl1()
{
????????????InitializeComponent();
????????}
????????[Browsable(false),?DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public?ToolStrip?MyToolStrip
{
get{?returnthis.toolStrip1?;?}
????????}
????}
?
internalclass?MyDesigner?:?ControlDesigner{
private?UserControl1?MyControl;
publicoverridevoid?Initialize(IComponent?component)
{
base.Initialize(component);
//?Record?instance?of?control?we're?designing
????????????MyControl?=?(UserControl1)component;
this.EnableDesignMode(MyControl.MyToolStrip,?"MyToolStrip");
????????}
????}
轉(zhuǎn)載于:https://www.cnblogs.com/lihoo/p/7765535.html
總結(jié)
以上是生活随笔為你收集整理的自定义控件的子控件支持设计模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: alpha冲刺2
- 下一篇: centos 7 配置 到多站点设置