Proces ten, oparty jest na zdarzeniach. Opis dla elementu źródłowego jak i docelowego:
Element źródłowy:
- MouseDown - w zdarzeniu tym wywołujemy metodę DoDragDrop
- GiveFeedBack - daje możliwość zmiany wyglądu kursora myszy
- QueryContinueDrag - możliwość anulowania przeciągania
- DragEnter - zdarzenie wywoływane, w momencie, gdy kontrolka daje możliwość upuszczenia danych
- DragOver - wywoływane gdy dane znajdują się nad kontrolką docelową
- DragDrop - w momencie puszczenia przycisku myszy
- DragLeave - wywoływane gdy myszka opuszcza kontrolkę docelową
- Operacja zaczyna się od wywołania metody DoDragDrop (DragDrop.DoDragDrop) na kontrolce źródłowej. Metoda ta najczęściej jest wywoływana w zdarzeniu MouseDown - kopiowane są dane, oraz ustawiane zachowanie dla skopiowanych danych.
- Zostają wywołane zdarzenia GiveFeedBack oraz QueryContinueDrag. Pierwsze zdarzenie umożliwia zmianę wizerunku kursora myszy, drugie mówi o tym czy przenoszenie ma być kontynuowane czy też przerwane.
- Kursor myszy zostaje przesunięty nad kontrolkę docelową. Każda kontrolka, która ma ustawioną flagę AllowDrop, jest potencjalnym elementem do "umieszczenia" danych. Zostaje w tym momencie wywołane zdarzenie DragEnter. Możemy w tym momencie zdecydować czy odebrać dane, czy też odrzucić.
- Użytkownik puszcza przycisk myszy. Zostaje wywołane zdarzenie DragDrop, w którym możemy zdecydować co zrobimy z "przyniesionymi" danymi.
- All - dane są kopiowane, usuwane z źródła i umieszczane w kontrolce docelowej
- Copy - dane są kopiowane do celu
- Link - dane są podlinkowywane do celu
- Move - dane zostaną przeniesione do celu
- None - cel nie przyjmie danych
- Scroll - przewijanie w kontrolce docelowej
Code:
Efekt:
Drag & Drop pomiędzy aplikacjami .NET jest wspierane przez system. Jedynymi wymogami są:
- Kontrolka docelowa musi pozwalać na efekt ustawiony w metodzie DoDragDrop
- Kontrolka docelowa musi akceptować format danych ustawiony w metodzie DoDragDrop
Kod do pobrania: http://sdrv.ms/TjCDz3
Brak komentarzy:
Prześlij komentarz