簡體   English   中英

C#拖放到列表視圖

[英]c# Drag & drop in listview

我有一個列表框,將從中拖動到ListView中。 現在,我在ListView中有組,因此,當ListView中的項放在listviewgroup的位置時,它必須將其添加到該組下。

這是處理下降的代碼。

    private void lstvPositions_DragDrop(object sender, DragEventArgs e)
    {

        var group = lstvPositions.GetItemAt(e.X, e.Y);
        var item = e.Data.GetData(DataFormats.Text).ToString();
        lstvPositions.Items.Add(new ListViewItem {Group = group.Group, Text = item});

    }

我沒有找到可以提供groupitem的函數,因此我使用了GetItemAt,從中我還可以訪問listviewgroup。

但是GetItemAt始終返回null。

難道我做錯了什么? 有沒有更好的方法可以做到這一點?

首先,我假設您使用的是ListView,而不是ListBox,因為ListBox不包含GetItemAt成員。

要解決您的問題,請將點轉換為局部坐標:

private void lstvPositions_DragDrop(object sender, DragEventArgs e)
{
   var localPoint = lstvPositions.PointToClient(new Point(e.X, e.Y));
   var group = lstvPositions.GetItemAt(localPoint.X, localPoint.Y);
   var item = e.Data.GetData(DataFormats.Text).ToString();
   lstvPositions.Items.Add(new ListViewItem {Group = group.Group, Text = item});
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM