Как динамически обновлять текст меток при изменении текстового поля

У меня возникла проблема с обновлением текста моей метки. Не знаю, как мне это заняться.

У меня есть метка (lable1) и текстовое поле (secondTextBox), и у меня есть древовидное представление, из которого пользователю нужно выбрать элементы. Процесс выполняется следующим образом:

Пользователь выбирает элемент в древовидном представлении, label1 отображает текст по умолчанию и появляется второйTextBox. Когда пользователь меняет текст по умолчанию внутри secondTextBox, текст внутри метки1 должен автоматически обновляться без нажатия пользователем чего-либо (помните, что у меня есть около 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

Спасибо вам заблаговременно.

3 ответа

Похоже, вам просто нужно добавить обработчик событий 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)
}


Если вы хотите обновить ярлык при изменении текстового поля, вы должны подключить события TextChanged в текстовом поле:

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

Задайте событие с помощью конструктора форм или динамически, когда вы загружаете форму.


label1.Text = String.Format( "Ваш текст здесь" );

licensed under cc by-sa 3.0 with attribution.