1. ...
2. YourItem.Foucused := false;

解决方案 »

  1.   

    1、我程序里使用的方法(原理是移动并交换位置)
    Var
      ts: TListItem;
      dataid:pdatanode;
      tdc,tds1,tds2,tsc,tss1,tss2,pxsql:string;
      movid,m:integer;begin
      if rzlistview1.Selected<>nil then
      begin
        j:=rzlistview1.Items.Count;
        if j<>0 then
        begin
          ts:=rzListView1.Selected;
          rzListView1.SetFocus;
          i:=ts.Index;
          if i<j-1 then
          begin
            tsc:= rzlistview1.Items[i].Caption;
            tss1:=rzlistview1.Items[i].SubItems[0];
            tss2:=rzlistview1.Items[i].SubItems[1];
            rzlistview1.Refresh;
            rzListView1.Items[i+1].Selected:=true;
            rzListView1.SetFocus;
            tdc:=rzlistview1.Items[i+1].Caption;
            tds1:=rzlistview1.Items[i+1].SubItems[0];
            tds2:=rzlistview1.Items[i+1].SubItems[1];
            rzlistview1.Items[i+1].Caption:=tsc;
            rzlistview1.Items[i+1].SubItems[0]:=tss1;
            rzlistview1.Items[i+1].SubItems[1]:=tds2;
            rzlistview1.Items[i].Caption:=tdc;
            rzlistview1.Items[i].SubItems[0]:=tds1;
            rzlistview1.Items[i].SubItems[1]:=tss2;
          end;
        end;
    2、让其它控件得到焦点
      

  2.   

    第一个问题在Drop的系列事件里面判断条件移动。界面只是你自己定义的表达数据的方式,所有的Item的移动都必须自己来做。因为一般来说每一个树节点都可能表示实际的某一系列数据。不同的数据系列的关系还是要你自己来处理。