+A
   +B
       1
       2
   +C
       3
       4
这样一个treeview,我想在单击B或C前面的加号时展开B或C,并同时得到B或C节点的text,该怎么实现?
在哪个事件中写响应代码,怎样写代码?
谢谢了

解决方案 »

  1.   

    在OnExpanded事件中,该事件有一个Node参数,通过它得到text.
      

  2.   

    procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    begin
      ShowMessage(TreeView1.Selected.Text);
    end;
      

  3.   

    那执行
    TreeView1.FullExpand;
    不是会出问题么?
      

  4.   

    嗯,需要在鼠标点击时设标志,在OnExpanded事件里加判断,
    有标志的才处理,然后勤标志
      

  5.   

    和二楼一样:
    procedure Tflittlemenu.TreeView1Click(Sender: TObject);
    begin
       showmessage(treeview1.Selected.Text);
    end;
      

  6.   

    那设置个标志bbbprocedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode; 
      var AllowExpansion: Boolean); 
    begin 
    if bbb then
      ShowMessage(TreeView1.Selected.Text); 
    end;
    bbb=false;
    TreeView1.FullExpand;
    bbb=true;
      

  7.   

    直接在OnClick事件當中把當前選擇的結點判斷一下就可以得到了結點的Text了...
      

  8.   


    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      treeNode: TTreeNode;
    begin  treeNode := TreeView1.GetNodeAt(X,Y);
      if treeNode <> nil then
      begin
        ShowMessage(treeNode.Text);
      end;
    end;