C#中UserControl中的Text属性
我有一个内部TextBox的控件。 我想在UserControl的Text属性和TextBox的Text属性之间建立直接关系。 我意识到的第一件事是文本没有显示在UserControl的属性中。 然后我添加了Browsable(true)属性。
[Browsable(true)]
public override string Text
{
get
{
return m_textBox.Text;
}
set
{
m_textBox.Text = value;
}
}
现在,文本将显示一段时间,但随后被删除。 这是因为信息不会自动写入xxxx.Designer.cs
文件中。 这怎么能改变?
你需要更多的属性:
[EditorBrowsable(EditorBrowsableState.Always)]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Bindable(true)]
public override string Text
反射器是.NET开发人员的重要工具。 当你使用它来查看UserControl.Text属性时,你很快就会明白你需要做什么:
[Bindable(false), EditorBrowsable(EditorBrowsableState.Never), Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;
}
}
何向你展示了你需要做什么来取消这些属性,太糟糕了,他没有告诉你他是如何发现的。 反射器是免费的,从redgate.com下载它或检查这里的替代品:比.NET反射器更好的东西?
对于InitializeComponent()
序列化,您只需要DesignerSerializationVisibilityAttribute:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
链接地址: http://www.djcxy.com/p/61991.html