![](/img/trans.png)
[英]C# custom TextChanged event handler for custom Text property for a UserControl?
[英]Text property in a UserControl in C#
我有一個帶有內部TextBox的控件。 我想在UserControl的Text屬性和TextBox的Text屬性之間建立直接關系。 我意識到的第一件事是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 { get; set; }
Reflector是.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;
}
}
Ho向您展示了取消這些屬性所需的操作,很可惜,他沒有向您展示如何找到這些屬性。 Reflector
是
免費的,可以從redgate.com下載它,或在此處查看替代方法: 比.NET Reflector更好的東西嗎?
為了在InitializeComponent()
進行序列化,您需要的是DesignerSerializationVisibilityAttribute :
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.