gpt4 book ai didi

c# - 如何在鼠标按下时获取鼠标光标下的 TreeNode?

转载 作者:太空宇宙 更新时间:2023-11-03 20:43:05 25 4
gpt4 key购买 nike

基本上 TreeView 有复选框,我能够获得 TreeNode,但无论我在 TreeNode 上单击什么地方,它都会为我提供 TreeNode,从它的文本到它的复选框,再超出一点(向左)。

我能否限制 HitTest ,以便仅在用户单击 TreeNode 的复选框时获得 TreeNode?

最佳答案

我真的不知道你想做什么,但你可以使用 TreeView 事件 BeforeCheck 或 AfterCheck。

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;
}

关于c# - 如何在鼠标按下时获取鼠标光标下的 TreeNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1870644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com