日期:2014-05-17  浏览次数:20693 次

仿QQ界面,自定义UserControl之后的Font和Text属性的问题,设计器不能自动加入代码
本帖最后由 liucqa 于 2013-12-16 12:38:13 编辑
这几天没事,想写个仿QQ的登录界面,网上找了若干代码,开始修改,却发现自定义UserControl之后的Font和Text属性的问题,设计器不能自动加入代码

代码如下:
public partial class QQTextBoxEx : UserControl

[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)] 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public override string Text
        {                                      
            get { return this.BaseText.Text; }
            set { this.BaseText.Text = value; }
        }


注意这个Text属性,如果不加入DesignerSerializationVisibility的话,在设计器中修改Text属性,代码不会被自动加入到InitializeComponent中

然而,同样的办法,用到Font属性上,却不起作用。最后只能屏蔽掉Font自己另起个名字来设置字体。

我看了一下UserControl的代码,发现里面只有重载的Text属性(被隐藏),代码如下
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false), Bindable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public override string Text
        {
            get
            {
                return base.Text;
            }
            set
            {
                base.Text = value;
            }
        }

UserControls中没有Font属性,追溯上去,发现只有Controls里面才有。

哪位有这方面的经验,讲讲如何处理,能够在设计器中直接使用Font属性呢?

谢谢






------解决方案--------------------
参考下我写的界面库:
高仿QQ2013通讯DEMO-10.30更新
[精仿]360安全卫士-10.30更新(CSkin Demo)