Ian*_*oyd 7 c# user-controls winforms
可能重复:
C#中UserControl中的Text属性
如何Text将a属性标记UserControl为可浏览?
.NET UserControl类有一个Text属性.
不幸的是Text,a 的属性UserControl是不可浏览的:
//
//
// Returns:
// The text associated with this control.
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override string Text { get; set; }
Run Code Online (Sandbox Code Playgroud)
在我的UserControl我要揭露Text属性(即使其" 可浏览 ")在属性窗口.我试着盲目宣布它可浏览:
[Browsable(true)]
public override string Text { get; set; }
Run Code Online (Sandbox Code Playgroud)
现在它出现在属性窗口中,除了它现在什么都不做.
我试图盲目地调用base.Text以恢复功能:
[Browsable(true)]
public override string Text { get {return base.Text;} set { base.Text = value; this.Invalidate(); } }
Run Code Online (Sandbox Code Playgroud)
现在属性在设计时运行,但属性值不会持久保存到Form.Designer.cs它的InitalizeComponent代码中.
暴露属性的正确方法是什么UserControl Text,以便:
并作为奖励:
SLa*_*aks 11
你走在正确的轨道上; 加上[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
要找出它发生变化的时间,请覆盖OnTextChanged:
protected override void OnTextChanged (EventArgs eventArgs)
{
System.Diagnostics.Trace.WriteLine("OnTextChanged(): eventArgs: " + eventArgs);
base.OnTextChanged(eventArgs);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5589 次 |
| 最近记录: |