2012-04-13 83 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