为啥C#要把事件分为Click/MouseClick以及DoubleClick/MouseDoubleClick
为什么C#要把事件分为Click/MouseClick以及DoubleClick/MouseDoubleClick?
M$要把一个事件拆分成两种相类似的语义,这样设计的意义是什么呢?
在用windows api编程的时代,一个鼠标单击就是一个WM_MOUSEDOWN之类的消息,为什么C#要区分Click和MouseClick? 难道有其他的不同于鼠标的设备,也会产生Click?
到底怎么理解呢?
------解决方案--------------------
你说对了
就是有别的设备也能产生click
比如用tab使button获得焦点,然后回车
或使用了触摸屏
------解决方案--------------------
区分Click和MouseClick
是为了获取鼠标的按下状态或者左键或者右键或者鼠标点击次数或者滑轮的状态,获取之后 进而执行其它操作。
PS:个人观点,不喜勿喷。
------解决方案--------------------
其他设备暂时未定义,只能统一用click代替
就像4楼所说,因为鼠标点击分左键右键,所以单独定义
------解决方案--------------------
键盘也能产生click。
------解决方案--------------------
enter触发的click事件中的cursor.position往往不是我们想要的鼠标位置
------解决方案--------------------
MouseClick分左键右键
M$要把一个事件拆分成两种相类似的语义,这样设计的意义是什么呢?
在用windows api编程的时代,一个鼠标单击就是一个WM_MOUSEDOWN之类的消息,为什么C#要区分Click和MouseClick? 难道有其他的不同于鼠标的设备,也会产生Click?
到底怎么理解呢?
------解决方案--------------------
你说对了
就是有别的设备也能产生click
比如用tab使button获得焦点,然后回车
或使用了触摸屏
------解决方案--------------------
区分Click和MouseClick
是为了获取鼠标的按下状态或者左键或者右键或者鼠标点击次数或者滑轮的状态,获取之后 进而执行其它操作。
PS:个人观点,不喜勿喷。
------解决方案--------------------
其他设备暂时未定义,只能统一用click代替
就像4楼所说,因为鼠标点击分左键右键,所以单独定义
------解决方案--------------------
键盘也能产生click。
------解决方案--------------------
enter触发的click事件中的cursor.position往往不是我们想要的鼠标位置
------解决方案--------------------
MouseClick分左键右键