我真的不知道你想做什么,但是你可以在检查前或检查后使用TreeView事件。
beforecheck将treeviewCancelEventArgs作为参数,treeviewCancelEventArgs具有cancel属性,如果不希望复选框更改状态,则可以使用该属性。
编辑:
像这样的事情可能会奏效…
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
_lastNode = null;
_mouseDown = true;
}
private void treeView1_MouseMove(object sender, MouseEventArgs e)
{
if (_mouseDown)
{
var hitTestInfo = treeView1.HitTest(e.Location);
if (hitTestInfo.Location == TreeViewHitTestLocations.StateImage
&& hitTestInfo.Node != _lastNode)
{
_lastNode = hitTestInfo.Node;
hitTestInfo.Node.Checked = !hitTestInfo.Node.Checked;
}
else
{
_lastNode = null;
}
}
}
private void treeView1_MouseUp(object sender, MouseEventArgs e)
{
_lastNode = null;
_mouseDown = false;
}