【问题标题】:I can't seem to change the window form text in C#我似乎无法在 C# 中更改窗口窗体文本
【发布时间】:2013-08-19 23:13:25
【问题描述】:

我正在使用 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# 新手。大家有什么想法给我吗?

【问题讨论】:

  • “我把所有东西都拿出来了”是什么意思?您还取出了注册 button1_Click 事件处理程序的代码?不要编辑设计器生成的代码。

标签: c# visual-studio visual-studio-2012


【解决方案1】:

你尝试过类似的方法吗?

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

【讨论】:

  • 不,不要碰设计器文件。您的按钮单击处理程序属于Form1.cs,就像您在问题中正确写的一样。
【解决方案2】:

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

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

  1. formMain 设置为您的表单(不推荐,因为有下一个选项)
  2. 使用this 对象。 this 指的是您正在使用的当前对象(在这种情况下,您指的是您的表单)。

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

this.Text = "Hello World!";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2021-02-23
    相关资源
    最近更新 更多