示例代码

       都已经忘了更新了,感觉非常愧疚啊.现在努力补上

上篇很偷懒的写了自动格式设置.


把没讲完的补上.

一.智能标记

先看一张图.

asp.net控件设计时支持(3)

GridView右侧的小三角可以很轻松的帮助我们设置常用的属性,如下面的启动分页,启用排序等,通过这样的方式我们可以很快的完成工作。我们称这样的任务菜单为智能标记.

下面来看看如何实现

1.重写ControlDesigner的ActionLists属性

你必须重写这个属性,返回你自定义的智能标记集合(即DesignerActionListCollection),这里假设CustomControlActionList为自定义的智能

asp.net控件设计时支持(3)    public class SampleControlDesigner : ControlDesigner
    }


2.CustomControlActionList 自定义项列表

2.1项列表分类

(1)标题面板
(2)属性面板
(3)方法面板

类图如下

asp.net控件设计时支持(3)

看个效果图,你就明白怎么回事了

asp.net控件设计时支持(3)

2.2实现

(1)
继承DesignerActionList类,重写GetSortedActionItems方法添加自定义项面板集合,即2.1的三种项面板

asp.net控件设计时支持(3)        public override DesignerActionItemCollection GetSortedActionItems()
        }

(2)属性,方法项面板的实现

如果你设置属性的话,则必须在CustomControlActionList定义属性,方法也相同,代码如下

        }

以上步骤完成以后就大功告成了,接着则与相关控件关联起来就可以了,效果图在上面已经看过了.
asp.net控件设计时支持(3)[DesignerAttribute(typeof(SampleControlDesigner))]

二.模板编辑器

asp.net控件设计时支持(3) 

上面的模板编辑界面相信大家都很熟悉吧.设置支持怎么少的了模板呢.设置时模板编辑实现比较简单,下面来看下如何实现

这里自定义的模板控件不再列出

1.重写ControlDesigner类的TemplateGroups返回自定义模板组集合即(TemplateGroupCollection)

添加步骤跟表格的添加类似,td add tr然后table add td
模板则是TemplateGroup add TemplateDefinition 然后TemplateGroupCollection add TemplateGroup

代码如下

        }

这里注意TemplateDefinition构造函数的最后一个属性,true则在设计时编辑只能添加服务器控件

2.初始化启用设计时模板编辑

我们还需要在Initialize方法中调用SetViewFlags方法启用设计时模板编辑

asp.net控件设计时支持(3)        public override void Initialize(IComponent component)
        }

3.提供默认矩形标识符,为控件提供说明

如下图,DataList默认情况下给予如下提示

asp.net控件设计时支持(3)

我们可以通过重写GetDesignTimeHtml方法调用CreatePlaceHolderDesignTimeHtml方法创建一个矩形标识符来实现

asp.net控件设计时支持(3)        public override string GetDesignTimeHtml()
        }

好了,完成了,接着要做的就是与相关模板控件关联起来了


先写到这里,估计大家也不会可以留意这方面的东西,平时大家都太忙了,上面功能有跟没有没多大关系,不过常用控件属性和功能,有设计时支持一定会让使用的更加有效. 明天继续写

相关文章:

  • 2021-08-24
  • 2021-09-06
  • 2021-09-12
  • 2021-11-07
  • 2022-01-10
猜你喜欢
  • 2021-09-19
  • 2022-02-05
  • 2021-10-08
  • 2021-08-26
  • 2022-02-22
相关资源
相似解决方案