我写了一个树控件继承自微软的Microsoft.Web.UI.WebControls下的TreeView控件,其中设置一个自定义的属性时会掉用一个方法重新生成树的Nodes,问题是编译成dll引用到项目中时在设计环境中修改这个属性时也会调用那个方法并在设计环境中加载了数据,但是程序运行时却不能正常显示?

解决方案 »

  1.   

    那就只有贴图了
    这是我希望的状态,那个控件在设计时应该是这个样子:
    http://computer.mblogger.cn/images/computer.mblogger.cn/fusali/2251/o_1.JPG但是现在在设计时就加载了树里面的内容,成了这个样子
    http://computer.mblogger.cn/images/computer.mblogger.cn/fusali/2251/o_2.JPG问题就出在当我在设计环境中修改右面那个圈里的属性时,控件的代码就开始执行了,设置控件的DefaultDraw的代码如下:
    public DefaultDrawType DefaultDraw
    {  
    get
    {  
    return _defaultdraw;
    }
    set
    {
    _defaultdraw = value ;
    DrawTree(value) ;//在这里填充部门树
    }
    }
      

  2.   

    详细资料可查看ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpcondesign-timeattributesforcomponents.htm  属性
     应用于
     说明
     
    BrowsableAttribute
     属性和事件
     指定属性或事件是否应该显示在属性浏览器中。
     
    CategoryAttribute
     属性和事件
     指定类别的名称,在该类别中将对属性或事件进行分组。当使用了类别时,组件属性和事件可以按逻辑分组显示在属性浏览器中。
     
    DescriptionAttribute
     属性和事件
     定义一小块文本,该文本将在用户选择属性或事件时显示在属性浏览器底部。
     
    BindableAttribute
     属性
     指定是否要绑定到该属性。
     
    DefaultPropertyAttribute
     属性 (将此特性插入类声明前。)
     指定组件的默认属性。当用户单击控件时,将在属性浏览器中选定该属性。
     
    DefaultValueAttribute
     属性
     为属性设置一个简单的默认值。
     
    EditorAttribute 
     属性
     指定在可视设计器中编辑(更改)属性时要使用的编辑器。
     
    LocalizableAttribute
     属性
     指定属性应本地化。当用户要本地化某个窗体时,任何具有该特性的属性都将自动永久驻留到资源文件中。
     
    DesignerSerializationVisibilityAttribute 
     属性
     指定显示在属性浏览器中的属性是否应该(以及如何)永久驻留在代码中。
     
    TypeConverterAttribute 
     属性
     指定将属性的类型转换为另一个数据类型时要使用的类型转换器。
     
    DefaultEventAttribute
     事件 (将此特性插入类声明前。)
     指定组件的默认事件。这是当用户单击组件时在属性浏览器中选定的事件。
      

  3.   

    你指定那个控件的BackColor属性就行了