我可以';似乎没有改变C#中的窗口形式文本

本文关键字:窗口 文本 改变 我可以 | 更新日期: 2023-09-27 18:28:19

我正在使用Visual Studio创建一个程序。到目前为止,它只有一个带按钮的窗口。

在Form1.Designer.cs中,它初始化窗口:

namespace Test
{
    private void InitializeComponent()
    {
        // I took out everything else, it isn't needed.
        // 
        // formMain
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.BackColor = System.Drawing.SystemColors.ControlLightLight;
        this.ClientSize = new System.Drawing.Size(624, 442);
        this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
        this.Name = "formMain";
        this.Text = "Program Name";
        this.Load += new System.EventHandler(this.formMain_Load);
        this.menuBar.ResumeLayout(false);
        this.menuBar.PerformLayout();
        this.ResumeLayout(false);
        this.PerformLayout();
    }
}

在Form1.cs:中

    private void button1_Click(object sender, EventArgs e)
    {
        formMain.ActiveForm.Text = formMain.ActiveForm.Text + " - Project Name";
    }

但在我点击按钮后,它不会更改窗口文本。在更改文本后,我也尝试过formMain.ActiveForm.Refresh(),但没有成功。我到处寻找解决方案,但我是C#的新手。你们有什么想法吗?

我可以';似乎没有改变C#中的窗口形式文本

你试过这样的东西吗?

private void button1_Click(object sender, EventArgs e)
{
    this.Text = "Works!";
}

首先,永远不要编辑designer.cs代码。这是自动生成的,如果你编辑文件,你可以破坏东西。

其次,对于您向我们展示的代码,formMain还没有初始化为任何内容,因此它将在您尝试设置属性(例如其Text属性)时出错。所以你有两个选择:

  1. formMain设置为您的表单(由于下一个选项,不建议使用)
  2. 使用this对象。this指的是您正在处理的当前对象(在本例中,您指的是表单)

您可以设置表单的Text属性来更改表单的标题。例如:

this.Text = "Hello World!";