龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

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

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
有一个问题请教一下兄台,对于继续自microsoft的.net framework中现有的组件,怎么将一些属性屏蔽掉,就是新的组件不提供继续来的属性,比如继续Panel新编写EPanel,对于panel的属性的Bac

  有一个问题请教一下兄台,对于继续自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" );
  }
  
  }
  }
  
  假如大家有控件开发上的问题,也可以在我的主页上留言
  
精彩图集

赞助商链接