Control.GiveFeedback Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje podczas operacji przeciągania.
public:
event System::Windows::Forms::GiveFeedbackEventHandler ^ GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler? GiveFeedback;
member this.GiveFeedback : System.Windows.Forms.GiveFeedbackEventHandler
Public Custom Event GiveFeedback As GiveFeedbackEventHandler
Typ zdarzenia
Przykłady
Poniższy przykład kodu przedstawia operację przeciągania i upuszczania między dwoma ListBox kontrolkami. Przykład wywołuje metodę DoDragDrop po uruchomieniu akcji przeciągania. Akcja przeciągania rozpoczyna się, jeśli mysz przeniosła się więcej niż SystemInformation.DragSize z lokalizacji myszy podczas MouseDown zdarzenia. Metoda IndexFromPoint służy do określania indeksu elementu do przeciągania podczas MouseDown
zdarzenia.
W przykładzie pokazano również użycie niestandardowych kursorów dla operacji przeciągania i upuszczania. W przykładzie wymagane jest, aby dwa pliki 3dwarro.cur
kursorów i 3dwno.cur
, istniały w katalogu aplikacji, odpowiednio dla niestandardowego przeciągania i bez upuszczania kursorów. Kursory niestandardowe będą używane, jeśli element jest zaznaczony UseCustomCursorsCheck
CheckBox . Kursory niestandardowe są ustawiane w procedurze obsługi zdarzeń GiveFeedback .
Stan klawiatury jest oceniany w procedurze DragOver obsługi zdarzeń po prawej stronie ListBox
, aby określić, co operacja przeciągania będzie oparta na stanie klawiszy SHIFT, CTRL, ALT lub CTRL+ALT. Lokalizacja, w ListBox
której występuje spadek, jest również określana podczas DragOver
zdarzenia. Jeśli dane do porzucania nie są wartością String
, DragEventArgs.Effect parametr jest ustawiony na None
wartość w .DragDropEffects Na koniec stan upuszczania jest wyświetlany w elemecie DropLocationLabel
Label.
Dane do porzucania po prawej stronie ListBox
są określane w procedurze DragDrop obsługi zdarzeń, a String
wartość jest dodawana w odpowiednim miejscu w ListBox
obiekcie . Jeśli operacja przeciągania przesuwa się poza granice formularza, operacja przeciągania i upuszczania zostanie anulowana w procedurze QueryContinueDrag obsługi zdarzeń.
Ten fragment kodu przedstawia użycie GiveFeedback zdarzenia. Zobacz metodę DoDragDrop kompletnego przykładu kodu.
void ListDragSource_GiveFeedback( Object^ /*sender*/, System::Windows::Forms::GiveFeedbackEventArgs^ e )
{
// Use custom cursors if the check box is checked.
if ( UseCustomCursorsCheck->Checked )
{
// Sets the custom cursor based upon the effect.
e->UseDefaultCursors = false;
if ( (e->Effect & DragDropEffects::Move) == DragDropEffects::Move )
::Cursor::Current = MyNormalCursor;
else
::Cursor::Current = MyNoDropCursor;
}
}
private void ListDragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
// Use custom cursors if the check box is checked.
if (UseCustomCursorsCheck.Checked)
{
// Sets the custom cursor based upon the effect.
e.UseDefaultCursors = false;
if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
Cursor.Current = MyNormalCursor;
else
Cursor.Current = MyNoDropCursor;
}
}
Private Sub ListDragSource_GiveFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles ListDragSource.GiveFeedback
' Use custom cursors if the check box is checked.
If (UseCustomCursorsCheck.Checked) Then
' Set the custom cursor based upon the effect.
e.UseDefaultCursors = False
If ((e.Effect And DragDropEffects.Move) = DragDropEffects.Move) Then
Cursor.Current = MyNormalCursor
Else
Cursor.Current = MyNoDropCursor
End If
End If
End Sub
Uwagi
Zdarzenie GiveFeedback jest wywoływane po rozpoczęciu operacji przeciągania i upuszczania. Po wystąpieniu GiveFeedback zdarzenia źródło zdarzenia przeciągania może modyfikować wygląd wskaźnika myszy, aby przekazać użytkownikowi informacje zwrotne podczas operacji przeciągania i upuszczania.
Poniżej opisano, jak i kiedy są zgłaszane zdarzenia związane z operacjami przeciągania i upuszczania.
Metoda DoDragDrop określa kontrolkę pod bieżącą lokalizacją kursora. Następnie sprawdza, czy kontrolka jest prawidłowym elementem docelowym upuszczania.
Jeśli kontrolka jest prawidłowym elementem docelowym upuszczania, GiveFeedback zdarzenie jest wywoływane z określonym efektem przeciągania i upuszczania. Aby uzyskać listę efektów przeciągania i upuszczania, zobacz DragDropEffects wyliczenie.
Zmiany położenia kursora myszy, stanu klawiatury i stanu przycisku myszy są śledzone.
Jeśli użytkownik wyjecha z okna, DragLeave zdarzenie zostanie zgłoszone.
Jeśli mysz wprowadzi inną kontrolkę, dla tej kontrolki zostanie podniesiona DragEnter wartość .
Jeśli mysz porusza się, ale pozostaje w tej samej kontrolce, DragOver zdarzenie jest zgłaszane.
W przypadku zmiany stanu klawiatury lub przycisku myszy zdarzenie jest zgłaszane i określa, QueryContinueDrag czy kontynuować przeciąganie, upuszczać dane, czy anulować operację na podstawie wartości Action właściwości zdarzenia QueryContinueDragEventArgs.
Jeśli wartość DragAction to
Continue
, DragOver zdarzenie jest zgłaszane, aby kontynuować operację, a GiveFeedback zdarzenie jest zgłaszane z nowym efektem, aby można było ustawić odpowiednią opinię wizualną. Aby uzyskać listę prawidłowych efektów upuszczania, zobacz DragDropEffects wyliczenie.Uwaga
Zdarzenia DragOver i GiveFeedback są sparowane tak, aby w miarę poruszania się myszą w miejscu docelowym upuszczania użytkownik otrzymuje najbardziej aktualne opinie na temat położenia myszy.
Jeśli wartość DragAction
Drop
to , wartość efektu drop jest zwracana do źródła, więc aplikacja źródłowa może wykonać odpowiednią operację na danych źródłowych, na przykład wyciąć dane, jeśli operacja była przeniesieniem.Jeśli wartość DragAction to
Cancel
, DragLeave zdarzenie jest zgłaszane.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla