如何在Windows Forms中更改标题栏中的文本?

88

我试图设置一个条件,可以更改标题栏中的文字...

但是如何更改标题栏文本呢?


你是指文本本身还是用于显示它的字体?另外,你应该回去查看之前提出的问题,并标记一些适当的答案为已接受。 - Fredrik Mörk
7个回答

162
在运行时更改表单标题的方法如下:
public partial class FormMain : Form
{
    public FormMain()
    {
        InitializeComponent();
        this.Text = "This Is My Title";
    }
}

18
这应该是被接受的答案。不确定为什么其他答案试图包含如此多不必要的信息。 - Victor Zakharov
4
这是完美的答案。为什么它不被接受作为答案? - Liban
1
因为这个“答案”在窗体的构造函数中设置了文本,而OP想知道如何在使用ShowDialog()显示之前设置窗体的Text属性。 - Jazimov

70

你可以使用Text属性来更改Windows窗体标题栏中的文本。

对于C#

// This class is added to the namespace containing the Form1 class.
class MainApplication
{
   public static void Main()
   {
      // Instantiate a new instance of Form1.
      Form1 f1 = new Form1();

      // Display a messagebox. This shows the application
      // is running, yet there is nothing shown to the user.
      // This is the point at which you customize your form.
      System.Windows.Forms.MessageBox.Show("The application "
         + "is running now, but no forms have been shown.");

      // Customize the form.
      f1.Text = "Running Form";

      // Show the instance of the form modally.
      f1.ShowDialog();
   }
}

有点能用。但是当我关闭Form1时,另一个窗体出现了?为什么会这样?另一个窗体呈现给我标题窗体.. 为什么会打开两个窗体? - Dmitry Makovetskiyd
第一个是“MessageBox”,它显示应用程序正在运行,但在执行“f1.ShowDialog();”之前,用户看不到任何内容。 - Alpine
我刚把你的代码放到类和命名空间中,结果出现了一个错误。然后我只是设置了f1.Text,它就打开了两个窗口。 - Dmitry Makovetskiyd
你能发一下代码的那部分吗?你的类名是什么?是 Form1 吗? - Alpine
你是否创建了两次Form1的实例? - Alpine

7

所有包括从 Form 类创建新对象的答案都是绝对创建新的 form。但你可以在 Form 类中使用 ActiveForm 子类的 Text 属性。例如:

        public Form1()
    {
        InitializeComponent();
        Form1.ActiveForm.Text = "Your Title";
    }

3

由于没有人给出一个不使用关键字this或属性窗口已经被“清空”以至于什么都不在那里的正确答案,这里是一段2022年的代码,在运行WinForm .net core应用程序时将更改文本并显示表单。

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form1 form = new Form1();
        form.Text = "Your Text Here";
        Application.Run( form);                     
    }

1
public partial class Form1 : Form
{
    DateTime date = new DateTime();
    public Form1()
    {
        InitializeComponent();
}
    private void timer1_Tick(object sender, EventArgs e)
    {
        date = DateTime.Now;
        this.Text = "Date: "+date;
    }
}

我在将日期和时间插入表单名称时遇到了一些问题。最终找到了错误。我发帖是为了帮助有同样问题的人,让他们不必花费很长时间去搜索解决方案。


1
已经提供了解决方案,这并没有为这个主题增加任何必要的信息。 - L. Guthardt

0
this.Text = "Your Text Here"

将此代码放在“Initialize Component”下方,这样它应该会在窗体加载时更改。

0
如果您想在稍后更新它,一旦“this”不再引用它,我曾经尝试将一个变量赋值为指向主表单的指针,这样做有些成功。
  static Form f0;
  public OrdUpdate()
  {
   InitializeComponent();
   f0=this;
  }
  // then later you can say
  f0.Text="New text";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接