C # ListBox не позволяет перетаскивать - PullRequest
0 голосов
/ 31 декабря 2018

Я не могу перетаскивать файлы в свой список.Я установил для свойства AllowDrop значение true и добавил следующий код, но курсор представляет собой круг с линией, проходящей через середину, и не позволяет мне удалять файлы:

public List<string> files = new List<string>();
    public Form1()
    {
        InitializeComponent();
        this.listBox1.DragDrop += new DragEventHandler(this.listBox1_DragDrop);
        this.listBox1.DragEnter += new DragEventHandler(this.listBox1_DragEnter);
    }



    private void listBox1_DragEnter(object sender, DragEventArgs e)
    {
        try
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.All;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    private void listBox1_DragDrop(object sender, DragEventArgs e)
    {
        try
        {
            string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
            int i;

            for (i = 0; i < s.Length; i++)
            {
                listBox1.Items.Add(Path.GetFileName(s[i]));
                files.Add(s[i]);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

Я успешно это сделалдругой проект, с той лишь разницей, что я сейчас использую Visual Studio 2017. Есть идеи, почему это не работает?

1 Ответ

0 голосов
/ 31 декабря 2018

Я только что понял, что мне нужно добавить [STAThread] в мой файл Program.cs, чтобы это работало

...