Solved

TreeView screwed up?

Posted on 2002-07-05
10
637 Views
Last Modified: 2006-11-17
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?
0
Comment
Question by:Azmodan
10 Comments
 
LVL 28

Expert Comment

by:AzraSound
ID: 7132073
I am unable to reproduce this.  The MouseUp event fires each time I press and release the left mouse button anywhere on the treeview.
0
 
LVL 28

Expert Comment

by:AzraSound
ID: 7132077
Never mind...I am able to see this problem now.
0
 

Author Comment

by:Azmodan
ID: 7132095
not just press and release
press, move and release


so..same behaviour at your place... :(
this treeview seems worse than the one in VB6
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:Azmodan
ID: 7137597
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?
0
 

Author Comment

by:Azmodan
ID: 7139844
(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)
0
 
LVL 28

Expert Comment

by:AzraSound
ID: 7140608
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.
0
 

Author Comment

by:Azmodan
ID: 7140644
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.
0
 
LVL 28

Expert Comment

by:AzraSound
ID: 7140756
Sounds like something fun to play with, thanks for the info.
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 9393276
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
0
 

Accepted Solution

by:
SerCouWisMOD earned 0 total points
ID: 9441908
Question was closed per the recommendation

SerCouWisMOD
Community Support Moderator
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It seems a simple enough task, yet I see repeated questions asking how to do it: how to pass data between two forms. In this article, I will show you the different mechanisms available for you to do just that. This article is directed towards the .N…
The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question