vs2003设计器有个很有趣的特性:在WinForm设计时,控件没有ToolTip, 如果要加上的话,需要从ToolBox上拖出一个ToopTip专门的控件,这时候所画面上所有控件的属性中都会增加一个ToolTip属性,看起来很酷。

要做这样一个控件也很简单:
[ProvideProperty("Xxx",typeof(System.Web.UI.Control))]
这里要动态添加的属性是Xxxx, 目标是所有Control控件。
在控件类前加几个属性就会有几个动态属性出来。

WebControl开发点滴3:给所有控件添加属性public class CultureSelector : DropDownList,IExtenderProvider
}

在控件类上必须声明IExtenderProvider接口。在CanExtend方法内做详细筛选,比如只想给TextBox增加动态属性。

WebControl开发点滴3:给所有控件添加属性        [Description("允许的属性")]
WebControl开发点滴3:给所有控件添加属性        [Category(
"Culture")]
WebControl开发点滴3:给所有控件添加属性        
public string[] GetXxx(Control control) 

动态属性的操作会调用以上代码。注意:
1.参数中的Control必须和上面的声明一致。
2. GetXxx/SetXxxx必须和上面的属性声明一致,缺少会变成只读
3. GetXxx的返回值和SetXxx的参数值类型必须一致。类型不限。
4. [Category][Description]等加在GetXxx上,用法和真是属性一致。




为现有控件添加以上代码,这个控件在运行时就会为其它控件动态添加属性,有趣吧 :)

相关文章:

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