如何将Text
的{{1}}属性标记为可浏览?
.NET UserControl
类具有Text
属性。
不幸的是,UserControl
的{{1}}属性不是browsable:
Text
在我的UserControl
我想要在属性窗口中公开//
//
// Returns:
// The text associated with this control.
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override string Text { get; set; }
属性(即使其成为“可浏览”)。我试着盲目地宣布它可以浏览:
UserControl
现在它出现在属性窗口中,除了它现在什么也没做。
我试图盲目地调用Text
来恢复功能:
[Browsable(true)]
public override string Text { get; set; }
现在该属性在设计时运行,但属性值不会保留到base.Text
及其[Browsable(true)]
public override string Text { get {return base.Text;} set { base.Text = value; this.Invalidate(); } }
代码。
公开Form.Designer.cs
InitalizeComponent
属性的正确的方式是什么,以便它:
,作为奖励:
答案 0 :(得分:11)
你走在正确的轨道上;只需添加[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
要了解更改的时间,请覆盖OnTextChanged
:
protected override void OnTextChanged (EventArgs eventArgs)
{
System.Diagnostics.Trace.WriteLine("OnTextChanged(): eventArgs: " + eventArgs);
base.OnTextChanged(eventArgs);
}