TreeView中,如何捕捉到点击+、-符号事件,也就是展开、关闭事件?有OnExpanded等,好像没反应,不知道为什么?

解决方案 »

  1.   

    把这个例子做一遍,你就明白了。
    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);var
      MyHitTest : THitTests;
    begin
      MyHitTest := TreeView1.GetHitTestInfoAt(X,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;
    Delphi中的帮助。
      

  2.   

    是不是选中的节点?
    TREEVIEW.ITEMS.SELECTEDINDEX
    好像是这样,呵呵。有点忘了
      

  3.   

    TREEVIEW.GetNodeAt(x,y);
    不清楚,找帮助,输入GetNodeAt
      

  4.   

    谢谢,我再找找看。为什么OnExpanded不起作用呢?这个事件在什么情况下被触发呢?
      

  5.   


      假设item[0]是一个根结点以下代码试试就知道了
    procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if treeview1.Items[0].Expanded then
       showmessage('expanded')
       else
        showmessage('11111111');
    end;
      

  6.   

    OnCollapsing是点了‘-’后节点关闭之前的事件
    OnExpanding是点了‘+’后节点展开之前的事件