2014-02-27 6 views
5

Я пишу приложение Windows Forms на C# .NET 4.5.Динамическое изменение названия окна Windows Form (во время выполнения)

Я знаю, как программно изменить название главного окна, как это:

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

Однако, все мои исследования до сих пор показал, что это должно быть сделано перед тем загружается/показанный форма , Я хочу иметь возможность изменить заголовок окна во время работы приложения, так же как веб-браузер изменяет заголовок окна, чтобы включить имя текущей веб-страницы.

Возможно ли это? Если да, то как?

Спасибо!

+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 перерисовывать только Form и Refresh перерисовывать 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

Плохой пример с флагом ПРОДУКЦИИ. Это не проблема, так как установка заголовка окна там (до загрузки окна) работает нормально. У меня было проблемы с выполнением этого времени. – jimtut

+0

Вы можете установить свойство Text формы в любое удобное для вас время, и оно будет отражено, когда окно перекрашивается. – danish

Смежные вопросы