6 自定义控件之屏蔽控件的设计时属性

本文介绍了两种屏蔽控件属性的方法:一是通过重载父类属性并使用EditorBrowsable和Browsable属性进行标记;二是为控件编写designer并在PostFilterProperties方法中移除不需要的属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 屏蔽组建设计时属性                                                               
    1) 重载父类的属性,然后使用EditorBrowsable以及Browsable属性标记:                                                            
        例如,为了屏蔽基类的BackgroundImage属性,我们可以首先在子类中重载,然后为子类的BackgroundImage添加EditorBrowsable以及Browsable属性标记。                                                        
        [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]                                                         
            public override Image BackgroundImage                                                         
            {                                                         
                get                                                         
                {                                                         
                    return base.BackgroundImage;                                                         
                }                                                         
                set                                                         
                {                                                         
                    base.BackgroundImage = value;                                                         
                }                                                         
            }                                                             
            EditorBrowsable(EditorBrowsableState.Never),  指示隐藏显示在智能编辑提示功能intelliSense;Browsable(false),指示隐藏显示在IDE控件属性页面。                                                        
            另外的一些情况,例如隐藏一些设计时不可见的属性,Browsable(false)也经常会被独立使用。                                                                                                        
    2)为控件编写一个designer, 在designer里面的PostFilterProperties方法中过滤掉不想要的属性。                                                           
        [Designer(typeof (MyDesigner))]                                                        
         public sealed class MyControl: System.Web.UI.WebControls.WebControl {}                                                        
        public class MyDesigner:System.Web.UI.Design.ControlDesigner                                                        
            {                                                        
                public MyDesigner()                                                        
                {}                                                        
                protected override void PostFilterProperties( IDictionary Properties )                                                        
                {                                                        
                    Properties.Remove( "BackgroundImage" );                                                        
                 }                                                        
            }             

2 屏蔽效果

image

转载于:https://www.cnblogs.com/hbb0b0/archive/2010/11/23/1885326.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值