TreeView ignore double click only at checkbox

后端 未结 4 487
既然无缘
既然无缘 2020-12-16 12:41

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 bu

4条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-16 13:19

    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.

提交回复
热议问题