用 HitTest 判断当前鼠标点击是否在Node上,如果不在,就不处理,直接返回http://msdn.microsoft.com/zh-cn/library/system.windows.forms.treeview.hittest(v=vs.80).aspx

解决方案 »

  1.   

    你一定是需要 TreeView.HitTest 方法
      

  2.   

    那如何去掉点击空白处的响应事件呢?只希望点击节点进行响应,点空白处不希望响应我不是告诉你了嘛你在事件处理函数开头判断下,发现是空白,就退出,不执行后面实质的代码,不就相当于不响应了么?void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
        TreeViewHitTestInfo info = treeView1.HitTest(e.X, e.Y);
        TreeNode hitNode;
        if (info.Node != null) {
            hitNode = info.Node;
            MessageBox.Show(hitNode.Level.ToString());
        }
    }       用这个函数进行判断,无效
      

  3.   

    你有没有把MouseDown关联给事件
      

  4.   

     private void treeView1_MouseDown(object sender, MouseEventArgs e)
            {
                  TreeNode tn = new TreeNode();  
                  Point p = new Point();  
                  p.X = e.X;  
                  p.Y = e.Y;  
                  tn = this.treeView1.GetNodeAt(p);              if (tn == null)
                  {
                      MessageBox.Show("你点击空白处");
                  }
                  else
                  {
                      MessageBox.Show("你点击飞空白处");
                  }
        
            }
    以上代码,为什么   你点击空白处   一直不出现?