9

所以今天,我决定使用 Visual Studio 2012 在 C# 中创建一个自定义 TextButton 控件。我非常喜欢我所做的设计,尽管它可能很简单。但是,当我决定使用 Visual Studio 设计器将完成的组件移动到表单中时,我遇到了障碍。尽管 Text 属性显示在属性列表中,但 MainWindow.Designer.cs 文件中实际上并未更改该属性。下面是定义属性的代码:

[Category("Appearance")]
[Description("The text displayed by the control.")] 
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public override string Text
{
    get
    {
        return Button.Text;
    } 
    set
    {
        Button.Text = value;
    }
}

这是我的 MainWindow.Designer.cs 文件在 InitializeComponent 方法中创建的代码:

this.Open = new UI.Controls.TextButton();
this.Open.Location = new System.Drawing.Point(9, 3);
this.Open.Name = "Open";
this.Open.Size = new System.Drawing.Size(112, 28);
this.Open.TabIndex = 4;
this.Open.Click += new System.EventHandler(this.OpenButton_Click);
4

1 回答 1

7

部分问题是您正在覆盖该UserControl's Text属性。如果您将您的财产命名为另一个名称Text,那么myText它会起作用。为了解决您使用的问题,请Text尝试将DesignerSerializationVisibility属性添加到您的属性中,这应该会解决它。

[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
于 2013-10-04T03:02:40.167 回答