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

王朝c#·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

有一个问题请教一下兄台,对于继承自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

{

/**////

/// ButtonDesigner 的摘要说明。

///

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" );

}

}

}

如果大家有控件开发上的问题,也可以在我的主页上留言

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航