检测Label中的更改

时间:2011-06-08 10:59:31

标签: c# .net winforms

我有一张带有一些标签的表格。 程序会不时通过

更改标签上的文本
label1.Text = "some message"

我想创建一个函数,每次分配标签文本时执行该函数并实现这样的事件处理程序:

  this.label1.TextChanged += new System.EventHandler(this.label1_TextChanged);
  [...]      

  private void label1_TextChanged(object sender, EventArgs e) {
        // do some stuff
  }

只要文本真正改变,这样就可以正常工作。但是,如果文本设置为已有的相同值,则事件不会执行。是否有一种简单的方法可以将函数挂钩到文本赋值中,而不会将label1.Text = ...的每个出现都更改为自定义函数调用?

2 个答案:

答案 0 :(得分:4)

Control's Text property是虚拟的,因此您可以创建自己的标签控件并在其中添加自定义功能,例如在调用属性的setter时引发事件,即使它不会导致更改的文本。

答案 1 :(得分:0)

每次程序设置其值时,都会通过属性设置标签文本,它将调用您将在属性中定义的函数。

喜欢

public string LabelText 
{
   set
   {
    label1.Text = value;

    // your  Function Calling

    }
}