Azmodan
asked on
TreeView screwed up?
Hy
I put on a form a TreeView
on the TreeView MouseUp event, I put a Console.WriteLine("m up");
The mouseUp events seems to come up at the wrong times.
- If I click on a node, the mouseUp comes imediatly after i move the mouse (like a mouseMove).
- If I click on blank space, not on any node, the mouseUp events comes when I press the mouse button(like a mouseDown).
Could someone verify this? Is the treeview.net screwed up?
I put on a form a TreeView
on the TreeView MouseUp event, I put a Console.WriteLine("m up");
The mouseUp events seems to come up at the wrong times.
- If I click on a node, the mouseUp comes imediatly after i move the mouse (like a mouseMove).
- If I click on blank space, not on any node, the mouseUp events comes when I press the mouse button(like a mouseDown).
Could someone verify this? Is the treeview.net screwed up?
I am unable to reproduce this. The MouseUp event fires each time I press and release the left mouse button anywhere on the treeview.
Never mind...I am able to see this problem now.
ASKER
not just press and release
press, move and release
so..same behaviour at your place... :(
this treeview seems worse than the one in VB6
press, move and release
so..same behaviour at your place... :(
this treeview seems worse than the one in VB6
ASKER
it there a way to hook in c#?
hook.. i mean to get the windowproc for a control's handle and watch for windows system messages?
hook.. i mean to get the windowproc for a control's handle and watch for windows system messages?
ASKER
(i wrote to MS and thay responded that "This is a known problem with the TreeView control in version 1.0 of the .NET Framework.")
question remains.. how can I hook for windows messages? (to look for WM_PAINT or WM_LBUTTONUP)
question remains.. how can I hook for windows messages? (to look for WM_PAINT or WM_LBUTTONUP)
With regards to VB, sublcassing/hooking can be accomplished the same as it is in previous versions using Windows API. If you just want to translate that code over to C#, I can point you to a link. I'm not sure if .NET provides any new, simpler method for performing this task.
ASKER
a..yes, it does. :) found it in the meantime :)
in every control there is a protected method WndProc that is the actual WindowProc for that control. So this method is called for each and every message the control receives.
U just need to inherit the control and play with the messages.
This way u can override the MouseUp event. And call it when u find the WM_LBUTTONUP event.(didn't do it yet, but it shouldn't be very hard).
The problem still remains, the Tree is screwed up and MS admited this.
in every control there is a protected method WndProc that is the actual WindowProc for that control. So this method is called for each and every message the control receives.
U just need to inherit the control and play with the messages.
This way u can override the MouseUp event. And call it when u find the WM_LBUTTONUP event.(didn't do it yet, but it shouldn't be very hard).
The problem still remains, the Tree is screwed up and MS admited this.
Sounds like something fun to play with, thanks for the info.
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:
PAQ/Refund
Please leave any comments here within the next seven days.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
TheLearnedOne
EE Cleanup Volunteer
I will leave a recommendation in the Cleanup topic area that this question is:
PAQ/Refund
Please leave any comments here within the next seven days.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
TheLearnedOne
EE Cleanup Volunteer
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.