gpt4 book ai didi

c# - 用户控件自定义属性在构建时失去值(value)

转载 作者:行者123 更新时间:2023-11-30 14:12:26 26 4
gpt4 key购买 nike

我有一个名为“UserControl1”的用户控件,里面有一个标签和一个自定义属性:

[Browsable(true)]
public new string Text
{
get { return label1.Text; }
set { label1.Text = value; }
}

public UserControl1()
{
InitializeComponent();
}

此 UserControl 在名为“Form1”的表单中使用。在设计器中出现属性,但是当我写一些文本并构建应用程序时,文本被清除。我可以看到,该属性没有写在 Form1.Designer.cs 中。

如果我将属性名称更改为其他单词,一切正常。请注意“new”关键字以覆盖基本变量。

我发现了一个类似的问题here但没有解决方案。

您好!

编辑:没有硬编码值:

UserControl1.Designer.cs:

        // label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(64, 63);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(35, 13);
this.label1.TabIndex = 0;
//
// UserControl1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label1);
this.Name = "UserControl1";
this.Size = new System.Drawing.Size(181, 136);
this.ResumeLayout(false);
this.PerformLayout();

Form1.Designer.cx:

        // 
// userControl11
//
this.userControl11.Location = new System.Drawing.Point(35, 43);
this.userControl11.Name = "userControl11";
this.userControl11.Size = new System.Drawing.Size(181, 136);
this.userControl11.TabIndex = 0;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 262);
this.Controls.Add(this.userControl11);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

要重现该问题,只需创建一个新的 Windows 窗体应用程序,创建一个用户控件,其中包含一个标签和名为“Text”的属性。

最佳答案

尝试对 Text 属性使用 override 而不是 new 并包含 DesignerSerializationVisibility 属性:

[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public override string Text {
get { return label1.Text; }
set { label1.Text = value; }
}

关于c# - 用户控件自定义属性在构建时失去值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com