C#:TextChanged控件未启动事件;分配;
好吧,就这么定了 我有一个图表,它“侦听”一些标签的文本字段,并将它们的值绘制成图表。它通过在TextChanged事件上添加值来实现这一点 问题是: TextChanged仅在文本实际发生更改(显然)时触发,而不是在为其指定新值时触发 我需要的是: 一种检测标签的文本字段是否已更新(分配给)的方法,我需要处理的只是对控件(即标签)的引用C#:TextChanged控件未启动事件;分配;,c#,C#,好吧,就这么定了 我有一个图表,它“侦听”一些标签的文本字段,并将它们的值绘制成图表。它通过在TextChanged事件上添加值来实现这一点 问题是: TextChanged仅在文本实际发生更改(显然)时触发,而不是在为其指定新值时触发 我需要的是: 一种检测标签的文本字段是否已更新(分配给)的方法,我需要处理的只是对控件(即标签)的引用 我意识到TextChanged并不是为此而设计的,这就是为什么我想知道你们中是否有人遇到过类似的问题,并找到了解决方案。在“设置者”中,忽略细微的更改是相当常
我意识到TextChanged并不是为此而设计的,这就是为什么我想知道你们中是否有人遇到过类似的问题,并找到了解决方案。在“设置者”中,忽略细微的更改是相当常见的做法,例如:
public int Foo {
get {return foo;}
set {
if(foo != value) {
foo = value;
OnFooChanged();
}
}
}
如果
Text
的行为是这样的,并且您依赖于导致事件的所有更新,那么它可能无法按您所希望的方式工作。我可能会尝试另一种方法来做你想做的事;可能使用传递值的中间对象。您可以创建自己的控件,该控件继承自该控件,并创建自己的文本属性,该属性将在分配新值时触发事件。在文本的初始分配中未调用TextChanged
事件处理程序的原因是它是在第一个文本被指定后附加的(默认情况下,设计者似乎是按照这个顺序进行操作的)。我想这样做:
调用另一个方法(TextChanged
)UpdateGraph
收集必要的数据并更新图表UpdateGraph
- 调用
作为加载表单时的最后一件事UpdateGraph
这将确保使用初始值更新图形。重要的是,此调用在调用
InitializeComponent
之后进行,如果您的意思是覆盖
,则可以;但是如果“创建你自己的”意味着新文本{…}
,那就太糟糕了……对我来说,现在还太早;),但是,是的,超越