Drag & Drop Ale z pulpitu na kontrolke

0

Witam, wiem ze mozna uzyc mechanizmow w .net aby przenosic cos miedzy kontrolkami za pomoca mechanizmu d&d. Czy idzie jakos zaimplementowac drag and dropa z pulpitu, czy z jakiegos folderu do mojego programu? przeciagam plik z pulpitu do mojego programu i powiedzmy plik sie kopiuje.
Jesli tak, to gdzie musialbym tego szukac?

Pozdrawiam.

0

e.Data.GetData(DataFormats.FileDrop)

I tym sposobem w zdarzeniu DragDrop dostaniesz info o plikach, które zostały zrzucone na twoją formę. Ustawiasz wcześniej w zdarzeniu DragEnter e.Effects na DragDropEffects.All i już masz gotowe. A co potem zrobisz z tymi plikami to Twoja sprawa, kopiujesz, usuwasz, uruchamiasz, co tylko chcesz. Masz ścieżkę, resztę sam wykombinujesz.

A czego i gdzie szukać? O DragDropie na msdn, na pewno znajdziesz, nie boj się.
0

To dla przykladu:

       private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);

            foreach (string file in files)
            {
                this.listBox1.Items.Add(file);
            }

            File.Copy(files[0], @"E:\nowy.txt");
        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.All;
        }
0

Dzieki Panowie:)

0

Witam, zrobiłem tak jak opisano, ALE !!! dziwactwo jedne, działa tylko dla DragOver do DragDrop program w ogole nie zagląda ??!?!? obie funkcje napisałem dokładnie tak samo , później przenosiłem
throw new NotImplementedException();
które jest tworzone automatycznie, wewnatrz funkcji Form1_DragOver/Drop.
Gdy wykasuję DragOver nie dzieje się nic :(

0

Na kontrolce, która ma otrzymywać dropy jest property AllowDrop, który musisz przestawić na true.

1 użytkowników online, w tym zalogowanych: 0, gości: 1