确定GUI事件是由用户直接触发还是由于.Net中的代码分配

时间:2010-09-25 00:19:21

标签: .net events user-interface

假设您使用的控件如 NumericUpDown 具有 value 属性。 并设置值 numericUpDown1.Value = 10; 然后.net将触发​​事件 numericaUpDown1ValueChanged(sender,args),用户也可以直接设置此值控制和 .Net 将使用相同的发件人触发相同的事件。

能够识别事件是由代码还是直接用户输入生成, 我通常会将我的作业包装成以下内容:

userDirectlyChangingValue = false;
numericaUpDown1.Value = 10;
userDirectlyChangingValue = true;

然后在 numericaUpDown1ValueChanged(sender,args)事件中 我会使用 userDirectlyChangingValue 来识别事件的生成方式并采取相应的行动。

我的问题是, .Net 中有更好/直接的方式来实现这一目标吗?

由于

1 个答案:

答案 0 :(得分:0)

不,这是普遍采用的做法。取消订阅事件处理程序并在之后重新订阅它是 way 更加难看。