如何替换*.Designer.cs C#中标签文本的硬编码字符串?
如何正确替换Form1.Designers.cs中标签的硬编码字符串 而不是:如何替换*.Designer.cs C#中标签文本的硬编码字符串?,c#,visual-studio,hardcode,C#,Visual Studio,Hardcode,如何正确替换Form1.Designers.cs中标签的硬编码字符串 而不是: this.button1.Text = "TheButton"; this.label1.Text = "TheLabel"; 我想写: this.button1.Text = Resources.ButtonText; this.label1.Text = Resources.LabelText; 在visual designer(添加任何组件并保
this.button1.Text = "TheButton";
this.label1.Text = "TheLabel";
我想写:
this.button1.Text = Resources.ButtonText;
this.label1.Text = Resources.LabelText;
在visual designer(添加任何组件并保存)和代码生成器中更改表单后,将标签文本返回到硬编码字符串:
this.button1.Text = Resources.ButtonText;
this.label1.Text = "TheLabel";
有人知道如何解决这个问题吗?
最简单的方法是制作您自己的
按钮
/标签
,它从资源
获取其文本
属性:
class MyButton: Button
{
// put here attributes to stop its serialization into code and displaying in the designer
public new string Text
{
get {return base.Text;}
set {base.Text = value;}
}
public MyButton() : base()
{
base.Text = Resources.ButtonText;
}
}
刚刚在designer.cs文件中找到了防止引用反转的解决方案 而不是
this.label1.Text = MyNamespace.Properties.Resources.gui_lable1_text;
成功
this.label1.Text = global::MyNamespace.Properties.Resources.gui_lable1_text;
所以你写
Resources.LabelText
和VS将其返回到“标签”代码>。是这样吗?是的,它发生在设计器中更改表单之后。将其放入表单构造函数中。设计器将重新生成代码并删除您的更改。Autogenerator不会删除按钮文本的替换。i、 e.this.button1.Text=Resources.ButtonText在设计器中更改表单后仍然保留。这对我来说不是一个好的解决方案。我想在designer中看到标签的文本,而且我不想复制任何代码。对于按钮,替换硬编码字符串非常有效,但对于标签则不行。很遗憾,我没有找到更好的解决方案。
this.label1.Text = global::MyNamespace.Properties.Resources.gui_lable1_text;