2014-02-27 90 views
5

我正在编写基于C#.NET 4.5的Windows窗体应用程序。动态更改Windows窗体窗口标题(运行时)

我知道如何以编程方式修改主窗口的标题是这样的:

public partial class MyForm: Form 
{ 
    public MyForm() 
    { 
     InitializeComponent(); 
     if (!PRODUCTION) 
     { 
      this.Text += " (test environment)"; 
     } 
    } 
} 

然而,所有我的研究,到目前为止已经表明,这是一定要做之前加载/所示的形式。我希望能够在应用程序运行时更改窗口标题,就像Web浏览器更改其窗口标题以包含当前网页的名称一样。

这可能吗?如果是这样,怎么样?

谢谢!

+0

我做了一个按钮,在点击事件,我写'this.Text =“点击”;',它改变了它。 – Georgi

+0

看起来'this.Text'在窗体加载后起作用。我以前认为它没有工作,但再次尝试它可以正常工作。我会解决这个问题。对不起,麻烦了! – jimtut

+0

this.Text =“”;这应该做的工作。 –

回答

12

试试这个:

this.Text += " (test environment)"; 
this.Update(); 

,或者:

this.Text += " (test environment)"; 
this.Refresh(); 

你可以调用这些方法在任何时候你想,不依赖客户端操作的。不同的是,Update重绘只FormRefresh重绘Form和所有纳入控制

0

你在哪里定义和分配值为PRODUCTION?人们可以很容易地改变表格上的文字。检查验证码:

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 

      this.Text += "From Ctor"; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      this.Text = "New text"; 
     } 
    } 
+0

PRODUCTION标志的例子很糟糕。这不是问题,因为在那里设置窗口标题(在窗口加载之前)工作正常。我*在运行时遇到问题。 – jimtut

+0

您可以随时设置表单的Text属性,并在窗口重新绘制时反映出来。 – danish