標籤:style blog color io ar div log sp on
/// <summary> /// 當拖動某項時觸發 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listView1_ItemDrag(object sender, ItemDragEventArgs e) { listView1.DoDragDrop(e.Item, DragDropEffects.Move); } /// <summary> /// 滑鼠拖動某項至該控制項的地區 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listView1_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Move; } /// <summary> /// 拖動時拖著某項置於某行上方時 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listView1_DragOver(object sender, DragEventArgs e) { Point ptScreen = new Point(e.X, e.Y); Point pt = listView1.PointToClient(ptScreen); ListViewItem item = listView1.GetItemAt(pt.X, pt.Y); if (item != null) item.Selected = true; } /// <summary> /// 結束拖動 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listView1_DragDrop(object sender, DragEventArgs e) { ListViewItem draggedItem = (ListViewItem)e.Data.GetData(typeof(ListViewItem));//舊目標 Point ptScreen = new Point(e.X, e.Y); Point pt = listView1.PointToClient(ptScreen); ListViewItem TargetItem = listView1.GetItemAt(pt.X, pt.Y);//新目標 if (null == TargetItem) { return; } if (MessageBoxEx.Show("[" + draggedItem.Text + "]轉至[" + TargetItem.Text + "]", "詢問", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { var item = draggedItem.Tag as View_TableListModel; int tableid = item.ID; } //listView1.Items.Insert(TargetItem.Index, (ListViewItem)draggedItem.Clone()); //listView1.Items.Remove(draggedItem); }
C# listview 拖動節點