请问各位:
  
  我在Treeview 的DblClick中,想得到我当前选中的节点,但是当我点击Treeview中空白的地方,也就是没有选中某一节点,这时取得的节点会是默认选中的那个,我怎么才能实现没选中节点双击返回个空node?请各位指教,嘿嘿,也不是大家看没看懂。

解决方案 »

  1.   

    if TreeView1.GetNodeAt(X,Y)<>nil then ...
      

  2.   

    你用GetCursorPos得到鼠标位置,再算出相对于TreeView的位置.
      

  3.   

    if TreeView1.GetNodeAt(pos.X, pos.Y) <> nil then ?
    好像不行阿。
      

  4.   

    在TreeView1的OnMouseDown事件中填写:
    pNode := TreeView1.GetNodeAt(pos.X, pos.Y)
    x,y即为该事件里的x,y
      

  5.   

    pNode := TreeView1.GetNodeAt(X, Y)
      

  6.   

    根据treeview.selected.level
    treeview.selected.index
    两个属性是可以实现的
      

  7.   

    procedure TForm1.TreeView1DblClick(Sender: TObject);
    var
     p:TPoint;
     Node:TTreeNode;
    begin
    //
     p:=TreeView1.ScreenToClient(Mouse.CursorPos);
     Node:=TreeView1.GetNodeAt(p.X,p.Y);
     if (Node<>nil )then
      ShowMessage('You select the Node: '+Node.Text);
    end;procedure TForm1.TreeView1Click(Sender: TObject);
    var
     MyHitTest : THitTests;
      p:TPoint;
    begin
     p:=TreeView1.ScreenToClient(Mouse.CursorPos);
       MyHitTest := TreeView1.GetHitTestInfoAt(p.X,p.Y);
      if htNowhere in MyHitTest then
        ListBox1.Items.Add('NoWhere');
      if htOnItem in MyHitTest then
        ListBox1.Items.Add('OnItem');
      if htOnButton in MyHitTest then
        ListBox1.Items.Add('OnButton');
      if htOnIndent in MyHitTest then
        ListBox1.Items.Add('OnIndent');  if htOnLabel in MyHitTest then
        ListBox1.Items.Add('OnLabel');
      if htOnRight in MyHitTest then
        ListBox1.Items.Add('OnRight');end;
    这两个事件处理过程不知您需要那个,试试吧