带有复选框的.NET TreeView控件
答
使用StateImageList和TreeNode.StateImageIndex上述目的使用该框。当用户点击状态图像时,您还需要订阅MouseDown事件并更改检查状态(状态图像)。通过使用这种方法,您也可以模拟三态复选框。
实际上,内部的TreeView实现实际上使用相同的方法,但是这对你是隐藏的。
private Image CreateCheckBoxGlyph(CheckBoxState state)
{
Bitmap Result = new Bitmap(imlCheck.ImageSize.Width, imlCheck.ImageSize.Height);
using (Graphics g = Graphics.FromImage(Result))
{
Size GlyphSize = CheckBoxRenderer.GetGlyphSize(g, state);
CheckBoxRenderer.DrawCheckBox(g,
new Point((Result.Width - GlyphSize.Width)/2, (Result.Height - GlyphSize.Height)/2), state);
}
return Result;
}
你在TreeView中遇到什么错误:
用于创建基于CheckBoxState的ImageList中图像的方法? – 2009-08-07 21:14:08
实际上,本机TreeView功能非常强大,但是您需要进行多次检查,因为TreeView在每个新的Windows版本中都会演变并获得新功能。 .Net树视图包装器不会使用所有的TreeView潜能,并且对于许多您需要继承的高级功能。 – arbiter 2009-08-07 21:40:19
这已经有一段时间了,但我记得的一个错误是在某些情况下不会发射的事件。 – 2009-08-07 22:46:58