Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TreeView ignore double click only at checkbox

I have a treeview with checkbox, I'm trying to disable the double click only when this is done in the checkbox.

I found a way to totally disable the double click but it was not what I wanted.

I appreciate if you can help me.

like image 257
MarcoBrand Avatar asked Feb 01 '13 13:02

MarcoBrand


1 Answers

I found this question when googling for the same bug. The problem with NoodleFolk's solution is that it disables expanding the three by double clicking on an item. By combining NoodleFolk's answer with john arlens answer, you would get something like this:

class NewTreeView : TreeView
{
    protected override void WndProc(ref Message m)
    {
        if (m.Msg == 0x203) // identified double click
        {
            var localPos = PointToClient(Cursor.Position);
            var hitTestInfo = HitTest(localPos);
            if (hitTestInfo.Location == TreeViewHitTestLocations.StateImage)
                m.Result = IntPtr.Zero;
            else
                base.WndProc(ref m);
        }
        else base.WndProc(ref m);
    }
}

I (quickly) tested this solution, and it seems to work.

like image 72
Jan Petter Jetmundsen Avatar answered Sep 17 '22 21:09

Jan Petter Jetmundsen