我有一张带有一些标签的表格。 程序会不时通过
更改标签上的文本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 = ...
的每个出现都更改为自定义函数调用?
答案 0 :(得分:4)
Control's Text property是虚拟的,因此您可以创建自己的标签控件并在其中添加自定义功能,例如在调用属性的setter时引发事件,即使它不会导致更改的文本。
答案 1 :(得分:0)
每次程序设置其值时,都会通过属性设置标签文本,它将调用您将在属性中定义的函数。
喜欢
public string LabelText
{
set
{
label1.Text = value;
// your Function Calling
}
}