自定义控件的子控件支持设计模式
生活随笔
收集整理的這篇文章主要介紹了
自定义控件的子控件支持设计模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://www.codeproject.com/Articles/37830/Designing-Nested-Controls? ?
?
? 假如一個復合控件由一個ToolStript和一個TextBox組成,如何使ToolStript獲得設計時支持, 在設計時可以像使用普通ToolStript一樣添加/刪除控件?
??????直接把ToolStript設為Public是無法達到目的的。必須定義一個用于為組件實現設計時服務的Designer
public?partial?class?UserControl1?:?UserControl
??????MyDesigner繼承自System.Windows.Forms.Design.ControlDesigner 類, 它提供了一個方法“EnableDesignMode”。使用它將啟用子控件的設計時功能,但需要將子控件公開為主控件的屬性。
???? 全部代碼如下:
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");
????????}
????}
轉載于:https://www.cnblogs.com/lihoo/p/7765535.html
總結
以上是生活随笔為你收集整理的自定义控件的子控件支持设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: alpha冲刺2
- 下一篇: 设计模式(一) 策略模式