C#TreeView-选择后事件触发

C#TreeView-选择后事件触发,c#,events,triggers,event-handling,treeview,C#,Events,Triggers,Event Handling,Treeview,我的树视图有点问题 背景:我有一个包含多个项目的树状视图,每当你点击一个家长或第一个孩子时,一个事件就会在一个新窗口中触发,在那里你可以做一些事情 我正在使用树状视图的“After_Select”事件,如下所示: if (_inside) //this boolean was my first attempt to deal with the problem { if (treeView1.SelectedNode.Parent != null)

我的树视图有点问题

背景:我有一个包含多个项目的树状视图,每当你点击一个家长或第一个孩子时,一个事件就会在一个新窗口中触发,在那里你可以做一些事情

我正在使用树状视图的“After_Select”事件,如下所示:

 if (_inside) //this boolean was my first attempt to deal with the problem
        {
                if (treeView1.SelectedNode.Parent != null)
                {
                    if (treeView1.SelectedNode.Parent.Parent != null)
                    {
                        //its 2nd child -> do nothing
                    }
                    else
                    {
                        Configuration_New_Click(treeView1.SelectedNode.Parent.Name.ToString(), treeView1.SelectedNode.Name.ToString()); //its 1st child do something
                    }
                }
                else
                {
                    Configuration_New_Click(treeView1.SelectedNode.Name.ToString(), ""); //its parent, do something else
                }
        }
问题是:每次我(例如tab)从程序中取出,然后tab返回->树视图中的第一项被选中->后选择触发时,事件都会触发。我还有一些类似的情况,基本上事件做它应该做的事情,它在选择一个项目时激发。问题是,每当树视图通过切换窗口等方式失去焦点时,第一个树视图项就会被选中。(只有在单击第一个treeview项目之外的其他treeview项目时才会触发)

我在论坛上读了一些文章,找到了一个我尝试过的解决方案->在不应该触发时将布尔值设置为false。它可以解决一些问题,但当我将alt+tab切换到其他窗口并将alt-tab切换到背靠背程序时,该事件仍会触发。有没有什么快速而肮脏的解决办法

谢谢你的时间和努力

编辑:“鼠标向下”是更好的解决方案吗?如果是这样,我如何在代码中使用此事件?因为我需要selectedNode来运行上面的代码

问候,


Christian

如何
SelectedItemChanged
?此事件在树视图菜单中不存在。但即使添加了它也无法解决问题,因为它至少会触发1次,好吧,不是无限次,但耶=/我可以添加另一个项目作为第一个没有事件触发的项目,并将所有其他1个阶段向后移动->父级=1。child 1.child=second和second-child=3rd-child,但这将是一个真正丑陋的解决方案。我不明白为什么它不能解决您的问题。哦,它似乎不在winforms中,因为每当SelectedItem更改时都会触发此事件。问题是当我单击菜单将项目3和alt+tab移到其他窗口,然后将alt+tab移回我的程序时,treeview自动选择其列表中的第一个项目->selecteditemchanged事件将在此处触发,而用户无需单击项目=/问题是,每当我切换窗口并返回程序时,treeview自动获得焦点,并自动选择第一个项目。我尝试将tabindex设置得更高,将tabstop设置为none,但这不起作用=/