你是不是弄错了,我试验了一下,切换的时候首先是ListView的OnExit事件,接着是TreeView的OnEnter的事件,没有引起OnChange事件。但焦点已经在TreeView上了。

解决方案 »

  1.   

    To sundayboys:
    如果改变了TreeNode,不可能不引起Onchange事件,
    你是怎样测试的,可以把代码贴出来吗?
      

  2.   

    procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    begin
      if TreeView1.Focused=True then
        Application.MessageBox('TreeView focuse', '111', MB_OK)
      else
      begin
        if ListView1.Focused=True then
          Application.MessageBox('ListView focuse', '111', MB_OK);
      end;
    end;
      

  3.   

    procedure TForm1.TreeView1Exit(Sender: TObject);
    begin
      showmessage('treeview left');
    end;procedure TForm1.ListView1Enter(Sender: TObject);
    begin
       showmessage('listview enter');
    end;procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    begin
      showmessage('listview change');
    end;procedure TForm1.TreeView1Enter(Sender: TObject);
    begin
      showmessage('treeview enter');
    end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    begin
      showmessage('treeview change');
    end;你测试一下就知道了。