我在treeview 的AfterSelect下面写了代码,怎么我没有手动选择节点,他自己就执行了呢?不是“在选定树节点后发生。”才执行呀?请指点,谢谢!

解决方案 »

  1.   

    用MouseDown时间可以实现和AfterSelect同样的功能
      

  2.   

    如何让加载窗体的时候不让treeview节点选中,谢谢!
      

  3.   

    debug调试,看看怎么触发的afterSelect事件啊,找到问题所在,自然就解决了,我用的时候都没问题。
      

  4.   

    MouseDown下写代码,如何获取节点的全路径,谢谢
      

  5.   

    不然就加上选择框,触发aftercheck事件
      

  6.   

    Treeview有一个自动获取焦点的过程,默认选择最顶端的节点。因此,AfterSelect会被执行。
      

  7.   

    它默认选择了第一个节点,然后触发了afterSelect事件,你可以在窗体类中定义一个bool变量标识是不是第一次加载触发,如果是第一次加载触发,return并把变量设为false,如果不是,执行程序代码...
      

  8.   


         public partial class FormMain : Form
        {
            bool isLoadSelect = true;
            public FormMain()
            {
                InitializeComponent();
            }
            private void FormMain_Load(object sender, EventArgs e)
            {
                treeView1.Nodes.Add("节点1");
                treeView1.Nodes.Add("节点2");
            }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                if (isLoadSelect)
                {
                    isLoadSelect = false;
                    return;
                }
                MessageBox.Show("AfterSelect事件!");
            }
        }
      

  9.   

    你只要让这个treeview控件的TabIndex不是窗体控件集合中最小的一个就可以了...因为窗体要Focus到TabIndex最小的控件上,如果是TreeView,它会默认选择第一个节点,并引发AfterSelect事件.