您的位置:首页 > 其它

屏蔽.NET自定义开发组件中的属性

2006-09-24 22:05 567 查看
有一个问题请教一下兄台,对于继承自microsoft的.net framework中现有的组件,怎么将一些属性屏蔽掉,就是新的组件不提供继承来的属性,比如继承Panel新编写EPanel,对于panel的属性的BackColor怎么屏蔽掉??

这个问题解决方法如下:

第一步:在你的控件类中定义设计时中提供服务的类
[Designer(typeof (MSPlus.Web.UI.Design.WebControls.ButtonDesigner))]

[Description( "MSPlus WebControl Button" )]
[Designer(typeof (MSPlus.Web.UI.Design.WebControls.ButtonDesigner))]
public sealed class Button: MSPlusWebControl, IPostBackEventHandler
{
}

第二步:新增一个设计时服务类,这个类继承 System.Web.UI.Design.ControlDesigner
第三步:重写PostFilterProperties()方法,
允许设计器从通过 TypeDescriptor 公开的属性集中更改或移除项。




/**//**


* 命名空间: MSPlus.Web.UI.Design.WebControls


* 类: ButtonDesigner


*


* 作者: Mack.Z


* 完成日期: 2003-12-21


* 版权信息: MSLULU (2000.10.10)


**/




using System;


using System.ComponentModel;


using System.ComponentModel.Design;


using System.Collections;




namespace MSPlus.Web.UI.Design.WebControls






{




/**//// <summary>


/// ButtonDesigner 的摘要说明。


/// </summary>


public class ButtonDesigner:System.Web.UI.Design.ControlDesigner






{


public ButtonDesigner()






{


//


// TODO: 在此处添加构造函数逻辑


//


}




protected override void PostFilterProperties( IDictionary Properties )






{


Properties.Remove( "Height" );


Properties.Remove( "BackColor" );


Properties.Remove( "BorderWidth" );


Properties.Remove( "Font" );


Properties.Remove( "ForeColor" );


Properties.Remove( "TabIndex" );


Properties.Remove( "ToolTip" );


Properties.Remove( "Enabled" );


Properties.Remove( "EnableViewState" );


}




}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: