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

1/5/2008来源:Java教程人气:4556


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