http://www.codeproject.com/Articles/37830/Designing-Nested-Controls

假如一个复合控件由一个ToolStript和一个TextBox组成,如何使ToolStript获得设计时支持, 在设计时可以像使用普通ToolStript一样添加/删除控件?

直接把ToolStript设为Public是无法达到目的的。必须定义一个用于为组件实现设计时服务的Designer

[Designer(typeof(MyDesigner))]
public partial class UserControl1 : UserControl

MyDesigner继承自System.Windows.Forms.Design.ControlDesigner 类, 它提供了一个方法“EnableDesignMode”。使用它将启用子控件的设计时功能,但需要将子控件公开为主控件的属性。

全部代码如下:

[Designer(typeof(MyDesigner))]
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

自定义控件的子控件支持设计模式相关推荐

  1. 小程序:自定义控件,父控件与子控件的交互triggerEvent

    实现目标,自定义控件一通用型喜欢按钮组件,包含喜欢和取消喜欢两种状态:如图 1.组件内的交互 点击爱心,UI上会变红心与空心  数据+1  -1 2.与父控件的交互,点击喜欢和取消喜欢,父控件发送网络 ...

  2. 【pyqt5】自定义控件 实现能够保持长宽比地缩放子控件

    需求 在窗口缩放过程中,实现控件按照一定的长宽比缩放 实现思路 1. 继承QFrame类, 重写resizeEvent方法 代码 from PyQt5 import QtCore, QtWidgets ...

  3. 递归的妙用—遍历子控件

    我们在ASP.NET编程中, 经常需要遍历一个Web控件的子控件 ,找到所需的控件并获取控件中相应的值.以前我都是采用循环的方式遍历子控件,但当子控件是复杂的树形结构,比如:子控件也有子控件,子控件的 ...

  4. java 用户控件_C#自定义控件VS用户控件

    C#中自定义控件VS用户控件大比拼 1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container 控件,Co ...

  5. android item 点击 获取position,Android ListView 子控件onClick正确获取position的方法

    在实际开发中,我们有时候不仅需要响应ListView的onItemClick,还需要响应其子控件的点击事件,这个时候我们就会 发现,由于复用等原因,如果直接在子控件的onClick事件中调用getVi ...

  6. 自定义控件之——封装控件(一)

    自定义属性与自定义Style 在使用一个自定义控件式我们常常在它的xml文件中看到如下的代码: <com.example.administrator.tine.view.CustomCalend ...

  7. winform 鼠标离开子控件触发mouseleave事件处理

    Winform 控件鼠标离开事件 中 鼠标进入子控件也会触发mouseleave事件处理 最近在做一个关于语音与文本互相转化的小工具,利用的是百度的语音与文本转化接口.由于百度的语音转文本极速版接口中 ...

  8. WPF查找子控件和父控件方法

    原文:WPF查找子控件和父控件方法 public List<T> GetChildObjects<T>(DependencyObject obj, string name) w ...

  9. (0066)iOS开发之UITableViewCell上子控件通过superView找对应的cell的探究

    转载自:http://www.cnblogs.com/XYQ-208910/p/6663677.html 一.简单介绍 UITableViewCell是UITableView的核心部分,我们在开发中因 ...

最新文章

  1. 关于 ListBox 自动换行
  2. 手把手教你写一个生成对抗网络
  3. hdu5108枚举因子求最小的m
  4. Day 1: Bower —— 管理你的客户端依赖关系
  5. internship research notes
  6. 2013 多校联合4 1011 Fliping game (hdu 4642)
  7. Android MVC模式在android系统中的体现
  8. 第一类斯特林数学习记录
  9. android textview 必填,在android中如何使用Html渲染的方式实现必填项前面的*号
  10. setcellvalue 格式_Java Cell.setCellValue方法代码示例
  11. pgAdminIII使用图解
  12. 中英文对照 —— 图表等的可视化
  13. C语言工程实践--物业费管理系统
  14. PNP与NPN三极管开关特性
  15. macbook 虚拟机安装win7
  16. 华为FusionCompute之计算虚拟化
  17. 计算机学霸的电视剧,10部经典青春校园剧,每一部都让人怀念青春
  18. go语言基础语法-用一个程序学会编程思维
  19. 17个案例印证5大生死逻辑
  20. Qt QDialog更换图标icon

热门文章

  1. JDK1.7安装配置环境变量+图文说明Jmeter安装
  2. Spring中AOP的两种代理方式(Java动态代理和CGLIB代理)
  3. poj2955Brackets(区间DP)
  4. C# 制作外挂常用的API
  5. 监督学习应用与梯度下降
  6. Kernel Method的理解
  7. 数据结构源码笔记(C语言):冒泡排序
  8. 数据结构源码笔记(C语言):链接队列
  9. delphi 读取ini所有项_财务机器人真的会代替财务人员所有工作吗?
  10. 动态代理——》AOP —— Spring 中的 AOP||AOP 相关术语||学习 spring 中的 AOP 要明确的事