【问题标题】:How to dynamically update Label text when textbox changes文本框更改时如何动态更新标签文本
【发布时间】:2012-04-13 20:08:39
【问题描述】:

我在更新标签文本时遇到问题。不知道我该怎么做。

我有一个标签 (lable1) 和一个文本框 (secondTextBox),我有一个树形视图,用户需要从中选择项目。流程是这样的:

用户在树视图中选择一个元素,label1 显示默认文本,第二个TextBox 出现。当用户更改 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

非常感谢您。

【问题讨论】:

    标签: c# winforms textbox label


    【解决方案1】:

    看起来您只需将TextChanged 事件处理程序添加到您的textbox1 控件。试着把它放在你的 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)
    }
    

    【讨论】:

      【解决方案2】:

      如果你想在文本框改变时更新你的标签,你应该连接文本框的 TextChanged 事件:

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

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

      【讨论】:

        猜你喜欢
        • 2011-04-09
        • 2012-10-10
        • 1970-01-01
        • 2017-10-08
        • 1970-01-01
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多