dotNet Product

TreeView with CheckBox

1 min readNo comments yet

If you wanna use CheckBox enabled TreeView in Windows Vista and further systems, you need to pay attention. If you double click the CheckBoxes in the TreeView, some useful event handlers, like BeforeClick and AfterClick, will not be raised. And, the vision of CheckBoxes will be changed (checked or not) but the property of related TreeNode will not.

To fix this, you have to create your own TreeView instead of the provided one.

using System;
using System.Windows.Forms;

[
        ComVisible(true),
        ClassInterface(ClassInterfaceType.AutoDispatch),
        DefaultProperty("Nodes"),
        DefaultEvent("AfterSelect"),
        Docking(DockingBehavior.Ask),
        Designer("System.Windows.Forms.Design.TreeViewDesigner"),
]
public class FixedTreeView : TreeView
{
	protected override void WndProc(ref Message m)
	{
		// Suppress WM_LBUTTONDBLCLK
		if (m.Msg == 0x203)
		{
			m.Result = IntPtr.Zero;
		}
		else
		{
			base.WndProc(ref m);
		}
	}
}

Source: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/9d717ce0-ec6b-4758-a357-6bb55591f956

Comments

Leave a comment

Comments are reviewed before they appear.