Solved

Can TreeView Contorl automatically focus and un-focus by user right-clicking on a node without changing it's selected node?

Posted on 2006-11-05
9
291 Views
Last Modified: 2010-04-16
Is there a property or do I have to write additional code for this behavior?  Basicly, The behavior like in Active Directory Users and Computer, if the root node is selected and has focus but I right click on like the Users folder, the Users folder would then be highlited and a pop-up menu appears pertains to the Users folder.  However, when I'm done wtih the pop-up of at this point I click on the empty area of the left pane, the root node would then again have the focus and it never lost the status as the "selected node"

Thanks.
0
Comment
Question by:lapucca
  • 4
  • 4
9 Comments
 
LVL 11

Expert Comment

by:Expert1701
ID: 17879208
The TreeView control in version 2.0 of the .NET Framework works that way.
0
 

Author Comment

by:lapucca
ID: 17879273
I am using vs2005, .net 2.0.  Currently in my application's TreeView control, the selectedNode isn't changed when I right-click on another node and the pop-up menu for the clicked-node does pop up.  But, the right-clicked Node doesn't get the focus (The node is not highlited).  So it's looking weird with the selectedNode high-lited but my mouse is over the clicked-node.

Is there a property that I need to set or un-set?  Thanks.
0
 
LVL 11

Expert Comment

by:Expert1701
ID: 17879293
Oh sorry, I did not read carefully enough: I thought the functionality you were looking for was the returning of focus to the root node (which it does), not the highlighting of the intermediate value.  When I set the HideSelection property to false, the TreeView works exactly like the Active Directory Users and Computers one.
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
LVL 11

Expert Comment

by:Mihai Stancescu
ID: 17880308
You can try this:

On the MouseDown event for the tree put this:

private void tree_MouseDown(object sender, MouseEventArgs e)
{
     if (e.Button == MouseButtons.Right && e.Clicks == 1) //make sure is only one right click... you can remove after &&
     {
         TreeNode aNode = tree.GetNodeAt(Cursor.Position.X,Cursor.Position.Y);
          if (aNode != null)
          {
                tree.SelectedNode = aNode;
          }
     }
}

Hope helps.
Regards,
Mishu
0
 

Author Comment

by:lapucca
ID: 17883399
I do have my HideSelection set to false.  When I right click on another node, the clicked-node does gain focus for a split seond when it's clicked but lose it back to the selected-node when the pop-up menu opens up.  The AD User and Computer snap-in retains the fous until the pop-up is closed or selected-menu action is done and performed.  Thanks.
0
 
LVL 11

Accepted Solution

by:
Expert1701 earned 500 total points
ID: 17885257
Your ContextMenuStrip must be assigned to each TreeNode, not the TreeView control.
0
 

Author Comment

by:lapucca
ID: 17887063
Oh, I can assign a contextMenustrip to a TreeNode?  Do I do this in the designer and how?  Currently, I'm calling the context menus when the node is clicked with button.  Maybe that is the problem with the focus?  Thanks.
0
 
LVL 11

Expert Comment

by:Expert1701
ID: 17887327
You can only do this through the designer if your nodes are created at design-time.
0
 

Author Comment

by:lapucca
ID: 17891872
Ah, it does work that way.  I was able to assign it programmtically and it now works the way it should  thanks.
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

860 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