我把TTreeView控件的RightClickSelect设为true,我想写一个同时响应鼠标左键和右键的事件,我用了OnMouseUp事件,可是在实际过程中,我发现在用鼠标右键点击时,第一次点总是没有反映,非要点第二次才行,再点也是这样,这是怎么回事呀,是不是我选的事件不对,还请各位支招,谢谢!!

解决方案 »

  1.   

    应该这样:
    -----------------------------
    //在鼠标按下的事件中(OnMouseDow)写代码
    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if Button=mbRight then
       Treeview1.Selected :=Treeview1.GetNodeAt(X,Y);
    end;//然后再在得到选中的事件中(OnGetImageIndex)写代码
    procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode);
    begin
      Edit1.Text := Self.TreeView1.Selected.Text;//自己加个Edit测试
    end;//通过以上代码,你就可以发现,无论是左键还是右键都可以实现选中的功能
    //选中后的内容显示在Edit中了