当文本框改变时如何动态更新标签文本

4

我有一个标签(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

非常感谢您的帮助。

2个回答

7

看起来你只需要给你的 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); 
}

使用表单设计器或在加载表单时动态设置事件。


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