首页 > 编程 > .NET > 正文

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

2024-07-10 13:04:55
字体:
来源:转载
供稿:网友
今天看见一个网友的留言:
有一个问题请教一下兄台,对于继承自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" );
}

}
}

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表