如何将列表项拖放到标签上,这样它就是C#中的标签文本?

时间:2013-06-20 11:13:58

标签: c# winforms listview drag-and-drop labels

我希望能够将列表框中的列表项拖到标签上,这样当您删除列表项时,它就会成为标签的文本。

我想我的鼠标部分是正确的:

private void listPlayers_MouseDown(object sender, MouseEventArgs e)
        {
            DoDragDrop(listPlayers.SelectedItem.ToString(), DragDropEffects.Copy);
        }

我也相信这对于dragEnter

label事件是正确的
private void posLB_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.Text))
                e.Effect = DragDropEffects.Copy;
            else
                e.Effect = DragDropEffects.None;
        }

但是,我不知道如何让DragDrop事件适用于label。我认为会是这样的:

private void posLB_DragDrop(object sender, DragEventArgs e)
        {
            posLB.text(e.Data.GetData(DataFormats.Text);
        }

但那有错误。

1 个答案:

答案 0 :(得分:0)

测试正确的类型,然后抓住它:

    private void posLB_DragDrop(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.Text))
        {
            String s = e.Data.GetData(DataFormats.Text) as String;
            if (!String.IsNullOrEmpty(s))
                posLB.Text = s;
        }
    }