0

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

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

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);
        }

但这有错误。

4

1 回答 1

0

Test for correct type and then grab it:

    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;
        }
    }
于 2013-06-20T11:19:10.183 回答