2012-04-13 81 views
3

我在更新標籤文本時遇到問題。不知道我該如何去做這件事。如何在文本框更改時動態更新標籤文本

我有一個標籤(lable1)和一個文本框(secondTextBox),我有一個樹形視圖,用戶需要從中選擇項目。過程如下所示:

用戶在樹視圖中選擇一個元素,label1顯示默認文本,並出現secondTextBox。當用戶更改secondTextBox中的默認文本時,label1中的文本應該自動更新,而不需要用戶按任何內容(請記住,我有大約45個節點需要這個節點處於活動狀態,有沒有快速的方法來做到這一點,或做我必須編輯45個節點的代碼?)。

到目前爲止,我已經能夠進行第一次更改,但是無論何時用戶輸入任何內容,標籤都不會自動更新,用戶必須從樹視圖中選擇其他內容並返回到原始選擇文字更新。

這是到目前爲止我的代碼:

namespace WindowsFormsApplication1 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 
    { 
     if (treeView1.SelectedNode.FullPath == @"Node0/Node1") 
     { 
      label1.Text = String.Format("Whatever default text there is {0}" 
    textBox1.Text); 
     } 
    } 
} 

}

下面是屏幕快照,當它在默認模式。

http://i.stack.imgur.com/0NOlP.jpg

下面是截圖的時候我已經進入文本,但在標籤盒沒有變化:

http://i.stack.imgur.com/3uX53.jpg

非常感謝你提前。

回答

6

看起來您只需要在您的textbox1控件中添加TextChanged事件處理程序。嘗試把這個在您的Form1構造:

textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); 

接下來,添加這個方法:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    label1.Text = String.Format("Whatever default text there is {0}", textBox1.Text) 
} 
1

如果您希望在文本框改變你應該連線文本框的框TextChanged事件來更新您的標籤:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    label1.Text = String.Format("Whatever default text there is {0}", textBox1.Text); 
} 

設置使用窗體設計器或dinamically時加載表單中的事件。

-1

label1.Text =的String.Format( 「您的文字在這裏」);

+1

問題中的代碼已經以這種方式設置了一個初始值。 OP有問題*更新文本。你沒有解釋如何做到這一點。這並沒有對所問的問題提供任何回答。 – 2017-09-08 07:49:53

+1

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/17271076) – 2017-09-08 07:54:52