比如下面的代码,一个普通的UserControl1,使用了DesignerAttribute之后,这个UserControl1会有哪些变化?
 MSDN上写的我看不明白,哪位老师能简单易懂的说说,能举例子就更好了。
 谢谢!
    [Designer(typeof(IRootDesigner))]
    public partial class UserControl1 : UserControl

解决方案 »

  1.   

    这个是给设计时用的,
    比如你在 vs 中打开 UserControl1 进行可视化设计时,
    vs 就会创建一个 Designer 属性指定的类由这个类来提供一下设计时功能.IRootDesigner  是一个接口, 你的那个有错误, 必须指定一个实现类.IRootDesigner 是根设计器类接口, 就是在 vs 中打开 UserControl1 所在类时使用的,
    还有一种是 IDesigner 接口, 当这个控件被放到其他窗口和界面上时用的..net 里头的所有控件(组件)都有 Desinger 属性设定.
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/system.componentmodel.designerattribute(v=vs.80).aspx
    控件属性设置
      

  3.   

    曾经用它和Blend实现过很给力的2D动作、场景编辑器
      

  4.   

    不好意思,我还是不明白。
    一个普通的UserControl1,使用了DesignerAttribute之后,这个UserControl1会有哪些变化?
    或者说,给这个UserControl1加上DesignerAttribute特性,代码作者的目的是什么?
      

  5.   

    DesignerAttribute属性只在VS里面设计时有用,
      

  6.   

    目的是增加设计时功能的.举个例子, winform 的 DataGridView用过吧,
    当你拖入窗口时, 选中 datagridview , 后, 会有一些上下文菜单出来,
    让你设定列, 及其绑定数据.其他控件也一样, 都有不同的设计时功能需求.这些功能在运行时是不需要的. 所以分离到了其他地方去实现.
    .net 类库的直接分离到了另一个程序集中实现大多数设计时功能.
    System.Design.dll 中.如果你只是使用一个控件(组件)类, 不需要关注这个.如果你是控件(组件)类的作者, 
    设计一个个性化的设计时支持体系将使你的类型更友好, 使用更方便.在设计时需要而运行时不需要的,
    还有[Editor( 用于指定属性编辑器
    [Serializer 用于指定代码序列化.
      

  7.   

    不会对你的 UserControl1 本身产生作用
    具体能干什么,现在手边没例子没环境,晚上再看看
      

  8.   

    谢谢3位的回答,尤其是 Dobzhansky 。
    希望能有例子出现,就好比Dobzhansky说的,在VS设计器里,右键这个UserControl1,在弹出的上下文菜单中,添加自定义的菜单项。
      

  9.   

    你要做 Designer 不?.net 的设计时系统是一个很大的东西
    资料比较零散且少.
      

  10.   

    Designer 有 Design verb 和 design action 用来提供设计时动作.
      

  11.   

    唔,我过于激动了
    原来我用的都是 EditorAttribute,DesignerAttribute 完全没用过呢
      

  12.   

    正在做一个东东,类似Designer,这几天认识了大量的.NET类,头也晕晕的。
      

  13.   

    比较好的例子, 微软有几个http://msdn.microsoft.com/msdnmag/issues/06/03/DesignerHosting/default.aspx
    http://windowsclient.net/articles/shapedesigner.aspx用心把这2个看明白, 之后就知道该学哪些东西了.
      

  14.   

    DesignerHosting 正在看,shapedesigner 先记下来。
    贴子先留着,对Designer有兴趣的都来讨论讨论。
      

  15.   

    .net 设计时体系可以用在自己的程序中,
    做什么表单设计器, 报表设计器啦,
    作为一个程序结构, 也有好多可以借鉴的东西.
    比如那个 
    IServiceProvider 机制, 现在用了好多.对于 winform 的, .net 类库中包含了大量的设计时支持,
    只缺少一个 代码反序列化工具, 就是分析代码文件产生 CodeCompileUnit 的设施.
    不过这个可以从 Mono 中借用.对于 asp.net 和 wpf 就没那么幸运了,
    大量的设计时功能都实现在 vs 中了.
      

  16.   

    WPF 也有很多设计时功能的,但好像VS支持的不大好
    我3楼提到的编辑器就是利用 WPF 的设计时特性做的,在 Blend 2 里效果很棒,但 VS 2008 里就差一些了,却也不是完全不能用
      

  17.   

    研究DesignerHosting这个例子,对于其中的Custom RootDesigner有些疑问,请帮忙看看http://topic.csdn.net/u/20110216/09/9ba77f99-ad5d-4bf1-bf0e-ee1ef40c2a72.html