我有一个winform的组合,当然我需要知道用户何时选择选项。问题是每种事件类型都有其缺点:
当选择在封闭的下拉列表中进行选择时,不会触发文本变化(但是通过将ComboBox聚焦并使用键盘箭头上下移动)。
SelectionChangeCommentedHandler在打开下拉列表时不会触发,用户通过键盘箭头上下移动,然后在Combobox标题或室外单击鼠标。
slectedIndexchangedhandler被触发过多的次
所以我想这样做那个解决方案:
在SelectionChangeCommentedHandler和TextChanged Events中注册,并且在两者都被解雇的情况下,请忽略其中之一。问题是我不知道如何检测这种情况(=一个用户操作中的两个事件)。
我很高兴知道如何检测到这一点,或者如果在那里,听到了更好的解决方案。
有点肮脏,但是我试图给您一个解决方案:听这两个事件并在每次射击时都标记时间戳。事件启动后,请检查当前时间与最后一次操作时间,并且在公差下,您可以决定,仅在上次操作以来经过一定的时间时才继续使用程序逻辑。
我想象大约100毫秒的东西就足够了,但请自己尝试。