1
我有这样定义的用户控件:我想从设计师做groupBox1.Text直接访问,所以我去了明显的解决方案为什么winforms设计器忽略重写属性的属性?
public partial class FooControl : UserControl
{
private System.Windows.Forms.GroupBox groupBox1;
...
,并在我的FooControl创建了以下属性:
[CategoryAttribute("Appearance"), DescriptionAttribute("The text associated with this control.")]
public string Text
{
get { return groupBox1.Text; }
set { groupBox1.Text = value;}
}
,因为文字是我的超类中已经定义这不起作用(事实上,这是一个有点,因为可浏览= false属性的黑暗,但我终于找到它):
public class UserControl : ContainerControl
{
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override string Text { get; set; }
一个简单的解决方法是使用“Text2”而不是“Text”作为属性名称,在这种情况下,一切正常。但是,如果我使用覆盖或新建,我的代码编译(和工程),但我的文本属性在设计器中不可见。
这种行为的原因是什么?是否有解决方法(除了使用其他属性名称)?
VS你上哪个版本? – JohnIdol 2009-10-29 15:13:31
vs2008 v9.0.30729.1 SP – Brann 2009-10-30 10:14:49