본문 바로가기
카테고리 없음

[C#] ListView 아이템 끌어서(Drag) 이동하기

by 창용이랑 2022. 8. 23.
728x90

ListView 아이템을 마우스로 끌어서 이동하는 예제입니다.
한 줄 전체를 그리고 여러 셀을 선택하여 이동할수 있습니다.

 

private void listView1_MouseMove(object sender, MouseEventArgs e)
{
    if(e.Button == MouseButtons.Left)
    {
        this.Cursor = Cursors.SizeAll;
    }
}

private void listView1_MouseUp(object sender, MouseEventArgs e)
{
    bool bSamePosition = false;
    this.Cursor = Cursors.Arrow;
    ListViewItem selected = this.listView1.GetItemAt(e.X, e.Y);
    if(null != selected)
    {
        foreach (ListViewItem l in listView1.SelectedItems)
        {
            if (l.Index == selected.Index)
            {
                bSamePosition = true;
                break;
            }
        }
        if(!bSamePosition)
        {
            List<ListViewItem> sl = new List<ListViewItem>();
            foreach (ListViewItem l in listView1.SelectedItems)
            {
                sl.Add(l);
                l.Remove();
                listView1.Items.Insert(selected.Index, l);
           }
        }
    }
}

 

전체소스

WATListViewMove.zip
0.02MB

 

출처 : http://whiteat.com/WhiteAT_Csharp/36857