首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

listview能否实现拖动换行?解决办法

2012-02-08 
listview能否实现拖动换行?就是拖动一条数据上下移动[解决办法]可以,利用DragDrop事件来实现,以下是示例代

listview能否实现拖动换行?
就是拖动一条数据上下移动

[解决办法]
可以,利用DragDrop事件来实现,以下是示例代码:
unit UExploreInitTable;

interface

uses

SysUtils, Messages, Classes, Graphics, Controls,

Forms, Dialogs, ComCtrls;

type

TForm1 = class(TForm)
ListView1: TListView;

procedure ListView1StartDrag(Sender: TObject;
var DragObject: TDragObject);
procedure ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);

private



end;

var

Form1: TForm1;



implementation

{$R *.DFM}

var
lstItem:TListItem;

procedure TForm1.ListView1StartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
lstItem:=ListView1.Items[ListView1.ItemIndex]; //取得所拖动的ListItem
end;

procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=ListView1.GetItemAt(X,Y)<>nil; //经过位置位于某ListItem范围内时方可接受拖放
end;

procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
lstItem2:TListItem;
begin
lstItem2:=ListView1.GetItemAt(X,Y); //取得放下位置的ListItem2
{生下来就是交换lstItem和lstItem2的数据了,不用我教了吧?}
end;

end.

热点排行