yey*_*man 25 c# user-controls winforms
我有一个内部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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,文本将显示一段时间,但随后会被删除.这是因为信息不会自动写入xxxx.Designer.cs文件中.怎么能改变这种行为呢?
Han*_*son 45
您需要更多属性:
[EditorBrowsable(EditorBrowsableState.Always)]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Bindable(true)]
public override string Text { get; set; }
Run Code Online (Sandbox Code Playgroud)
Han*_*ant 15
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;
}
}
Run Code Online (Sandbox Code Playgroud)
Ho向你展示了取消这些属性需要做些什么,太糟糕了,他没有告诉你他是如何发现的.Reflector 是免费的,从redgate.com下载或在这里检查替代方案:比.NET Reflector更好的东西?