【问题标题】:Set Form.Text at designer time to a non-constant string在设计器时将 Form.Text 设置为非常量字符串
【发布时间】:2015-08-20 18:43:33
【问题描述】:

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

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

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

所以我只能在运行时看到我在程序集信息中设置的应用程序名称,在设计器时我有“form1”,所以为了改变它,我决定移动这条线:

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

对于InitializeComponent() 方法,它确实有效。标题更改为:

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

【问题讨论】:

    标签: c# .net winforms titlebar


    【解决方案1】:
    System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢。我放弃了这一点,因为无论 GUI 设计器发生什么变化,代码都会再次生成,而我的 hjand 编辑的代码就会消失。所以使用它没有意义
      【解决方案3】:

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

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

      然后读回应用程序,如:

      ConfigurationManager.AppSettings["FormTitle"]
      

      或“.resx”资源文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        • 2011-10-11
        相关资源
        最近更新 更多