Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NET Treeview doesn't send click event on empty control

I'm working with a .NET Treeview control (not WPF, but regular winforms) and am having trouble with the right-click event (or any click event) not firing when the control has no nodes inside of it. As per the response to another thread on Stackoverflow, my event handler code is as follows:

    private void tvTest_MouseClick(object sender, MouseEventArgs e)
    {
        // Note: this block below is needed so that the menu appears on
        // the correct node when right-clicking.
        if (e.Button == MouseButtons.Right)
        {
            tvTest.SelectedNode = tvTest.GetNodeAt(e.X, e.Y);
            if (tvTest.SelectedNode != null)
            {
                tvTestContextMenuStrip.Show(tvTest, e.Location);
            }
            else
            {
                tvTestContextMenuStrip.Show(tvTest, tvTest.Location);
            }
        }
    }

The problem comes in that while this works fine when nodes are present, if the control is empty, I can't right-click the control and choose "add a node" to add to the root. The handler isn't entered AT ALL, as I set a breakpoint right at the beginning, and it appears the method is never entered.

Does anybody know how to get "something" to happen when the Treeview is empty?

like image 886
Kevin Anderson Avatar asked Jan 22 '23 03:01

Kevin Anderson


1 Answers

I was curious about this particlar problem you described so I created a new project then added a Treeview Control to the form.

I then created an event handler for the MouseDown event, and made it show a message, when the right button is pressed. If you need the code I am happy to provided upon request, based on the fact its about 2 lines and Visual Studio created the event method I don't see the point.

like image 153
Security Hound Avatar answered Jan 31 '23 17:01

Security Hound