首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > [原创]屏蔽.NET自定义开发组件中的属性
【标  题】:[原创]屏蔽.NET自定义开发组件中的属性
【关键字】:.NET
【来  源】:http://mack.cnblogs.com/archive/2004/08/23/35805.html

[原创]屏蔽.NET自定义开发组件中的属性

今天看见一个网友的留言:
有一个问题请教一下兄台,对于继承自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" );
        }


    }

}

注:这个方法只是屏蔽设计时的属性,但对于在代码文件通过智能提示的属性值是无法移除的(目前好像是没有办法作到)

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

[原创]复合控件中如何将客户端的处理结果通知服务器端的解决办法:【上一篇】
MSPlus DataList Control(大数据量时的分页演示):【下一篇】
【相关文章】
  • 关于MSPlus控件下载后用VS.NET打开提示目录不对的解决方法
  • 压缩ASP.NET中的ViewState
  • 压缩ASP.NET中的ViewState的改进方法
  • 强! .NET程序搜索引擎:DotLucene(Open Source)
  • 建立基于 ASP.NET 的事件日历
  • ASP.NET自定义控件示例:ASP.NET Custom control with designer integration
  • 将Google工具条添加到VS.NET中!
  • 其他语言的.net实现列表
  • Coalesys WebMenu for ASP.NET 4.0.8
  • .NET Framework 2.0 SDK and Redistributables released
  • 【随机文章】
  • win2000文件夹窗口中 连续播放音乐
  • FreeBSD初学者完全入门指南
  • 如何判断成人用品网站的诚信
  • 性能管理指南
  • 企业采用无线移动技术的六大优势
  • 10月08日病毒预警
  • 蛙蛙推荐:简单介绍一下托管容器持久性(CMP),顺便征集一下.NET CMP2.0的改进方案
  • 视频会议终端MP384
  • 鸟哥教简易SAMBA服务设定
  • fastcgi+apache+php的配置
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.