问题来源
我们平时对控件Mouse Up事件触发使用场景不多,可能在按钮控件上会偶尔用到。在一些场景中,我们用按钮的Mouse Up触发事件,但是又希望在某些限制条件下,按钮会被禁用而不能触发事件。
可是当我们禁用按钮时,它的Mouse Up动作还是能触发事件。我们可以看下图的演示。
我已经在按钮的属性中勾选了"Disabled&grayed",但是鼠标点击按钮再松开,依旧能够触发button:Mouse Up事件中的弹窗动作。
换成其他控件也是一样的,看下面的图片演示效果,我把按钮换成数值控件,依旧会弹窗。
问题分析
Mouse Up事件还是以鼠标左右键的松开动作关联更紧密,并不在意当前鼠标光标对应的控件的属性状态。
解决方法
针对按钮的话,我的建议就是直接把Mouse Up换成Value Change,在事件中再自行判断是真变假,还是假变真。至于其他控件,就具体情况具体分析,而且应用场景应该也不多。如果一定要用Mouse Up事件,而且还有禁用状态的判断,我的建议是用隐藏代替禁用吧。
文末总结
总的来说,就是控件的禁用状态并不影响该控件Mouse Up事件的触发。