将文件拖放到我的列表框中

use*_*698 1 c#

我尝试将选项添加到我的应用程序将文件拖入我的Listbox而不是导航到文件夹,这是我尝试的:

private void Form1_Load(object sender, EventArgs e)
{
    listBoxFiles.AllowDrop = true;
    listBoxFiles.DragDrop += listBoxFiles_DragDrop;
    listBoxFiles.DragEnter += listBoxFiles_DragEnter;
}

private void listBoxFiles_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Copy;
}

private void listBoxFiles_DragDrop(object sender, DragEventArgs e)
{
    listBoxFiles.Items.Add(e.Data.ToString());
}
Run Code Online (Sandbox Code Playgroud)

而不是完整的文件路径 e.Data.ToString() return System.Windows.Forms.DataObject

Asf*_*sfK 6

这个代码我在这里找到:

private void Form1_Load(object sender, EventArgs e)
{
    listBoxFiles.AllowDrop = true;
    listBoxFiles.DragDrop += listBoxFiles_DragDrop;
    listBoxFiles.DragEnter += listBoxFiles_DragEnter;
}

private void listBoxFiles_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
}

private void listBoxFiles_DragDrop(object sender, DragEventArgs e)
{
    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
    foreach (string file in files)
        listBoxFiles.Items.Add(file);
}
Run Code Online (Sandbox Code Playgroud)