2015年10月16日

解決TreeView的Check box的Atfercheck事件不正常動作

.net Windows form的TreeView在Windows 7裡,有一個問題就是,當你滑鼠左鍵點checkbox, 應該要觸發BeforeCheck或 AfterCheck,但有時並不會觸發,造成誤動作。

 

研究一下,原來是windows 7上的 Bug, 當click的間隔太近會被判斷成double click, 因此會有一次click被吃掉了。

解決之道就是把double click關掉,方法如下:

1. 建立一個TestTreeView使用者控制項,繼承至TreeView

2. Overide WndProc, 當double click時把會回傳值設定為0

image

之後就改用新作的 treeview

 

Ref:

https://social.msdn.microsoft.com/Forums/windows/en-US/9d717ce0-ec6b-4758-a357-6bb55591f956/possible-bug-in-net-treeview-treenode-checked-state-inconsistent?forum=winforms

http://www.csharpque.com/2012/04/treeview-checkbox-double-click.html

沒有留言:

張貼留言