在设计时将 Form.Text 设置为 non-constant 字符串

Set Form.Text at designer time to a non-constant string

我没有在 VS 属性 网格上设置 form.Text,而是在应用程序的程序集信息中设置了正确的名称,这样我在任何地方使用应用程序的名称或版本都需要在一个地方进行更改.

通常在Form1_Load事件中这样设置form.Text

private void Form1_Load(object sender, EventArgs e)
{
    this.Text = System.Windows.Forms.Application.ProductName;
}

所以我只能看到我在 run-time 的程序集信息中设置的应用程序名称,在设计时我有 "form1" 所以要更改它我决定移动行:

this.Text = System.Windows.Forms.Application.ProductName;

InitializeComponent() 方法,有点儿奏效了。标题更改为:

有什么方法可以解决这个问题并获得我在程序集信息中设置的正确名称而不是这个 Microsoft 名称?

我不确定你的意思,但你可以像这样把东西放在你的 App.config 设置文件中:

<appSettings>
    <add key="FormTitle" value="Your Title"/>
</appSettings>

然后像这样读回应用程序:

ConfigurationManager.AppSettings["FormTitle"]

或“.resx”资源文件

System.Reflection.Assembly.GetExecutingAssembly().GetName().Name

应包含在项目 --> 属性下的程序集名称字段中设置的应用程序名称。

您在设计时看到的表单托管在与实际解决方案不同的环境中。因此,您为什么会看到这种行为。

如果您真的想在设计时查看它,您应该将产品名称存储在资源文件中,或者如@Aniket 指出的那样存储在 App.config 中。