Bagikan melalui


Control.GiveFeedback Kejadian

Definisi

Terjadi selama operasi seret.

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 

Jenis Acara

Contoh

Contoh kode berikut menunjukkan operasi seret dan letakkan di antara dua ListBox kontrol. Contoh memanggil DoDragDrop metode saat tindakan seret dimulai. Tindakan seret dimulai jika mouse telah memindahkan lebih dari SystemInformation.DragSize dari lokasi mouse selama MouseDown peristiwa. Metode IndexFromPoint ini digunakan untuk menentukan indeks item yang akan diseret selama MouseDown peristiwa.

Contoh ini juga menunjukkan penggunaan kursor kustom untuk operasi seret dan letakkan. Contoh ini mengharuskan dua file kursor, 3dwarro.cur dan 3dwno.cur, ada di direktori aplikasi, untuk kursor seret dan tanpa jatuhkan kustom. Kursor kustom akan digunakan jika dicentang UseCustomCursorsCheckCheckBox . Kursor kustom diatur dalam penanganan GiveFeedback aktivitas.

Status keyboard dievaluasi di DragOver penanganan aktivitas untuk kanan ListBox, untuk menentukan apa operasi seret akan didasarkan pada status tombol SHIFT, CTRL, ALT, atau CTRL+ALT. Lokasi di ListBox mana penurunan akan terjadi juga ditentukan selama peristiwa.DragOver Jika data yang akan dihilangkan bukan String, maka DragEventArgs.Effect diatur ke None dalam DragDropEffects. Akhirnya, status penurunan ditampilkan di DropLocationLabelLabel.

Data yang akan dihilangkan untuk hak ListBox ditentukan dalam DragDrop penanganan aktivitas dan String nilai ditambahkan di tempat yang sesuai di ListBox. Jika operasi seret bergerak di luar batas formulir, maka operasi seret dan letakkan dibatalkan di QueryContinueDrag penanganan aktivitas.

Kutipan kode ini menunjukkan penggunaan GiveFeedback peristiwa. DoDragDrop Lihat metode untuk contoh kode lengkap.

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

Keterangan

Peristiwa GiveFeedback dinaikkan saat operasi seret dan letakkan dimulai. Dengan peristiwa tersebut GiveFeedback , sumber peristiwa seret dapat memodifikasi tampilan penunjuk mouse untuk memberikan umpan balik visual pengguna selama operasi seret dan letakkan.

Berikut ini menjelaskan bagaimana dan kapan peristiwa yang terkait dengan operasi seret dan letakkan dinaikkan.

Metode DoDragDrop menentukan kontrol di bawah lokasi kursor saat ini. Kemudian memeriksa untuk melihat apakah kontrol adalah target penurunan yang valid.

Jika kontrol adalah target drop yang valid, GiveFeedback peristiwa akan dinaikkan dengan efek seret dan letakkan yang ditentukan. Untuk daftar efek seret dan letakkan, lihat DragDropEffects enumerasi.

Perubahan pada posisi kursor mouse, status keyboard, dan status tombol mouse dilacak.

  • Jika pengguna berpindah dari jendela, DragLeave peristiwa akan dinaikkan.

  • Jika mouse memasuki kontrol lain, untuk kontrol tersebut DragEnter akan dinaikkan.

  • Jika mouse bergerak tetapi tetap berada dalam kontrol yang sama, DragOver peristiwa akan dinaikkan.

Jika ada perubahan dalam status tombol keyboard atau mouse, QueryContinueDrag peristiwa dinaikkan dan menentukan apakah akan melanjutkan seret, untuk menghilangkan data, atau membatalkan operasi berdasarkan nilai Action properti peristiwa QueryContinueDragEventArgs.

  • Jika nilainya DragAction adalah Continue, DragOver peristiwa dinaikkan untuk melanjutkan operasi dan GiveFeedback peristiwa dinaikkan dengan efek baru sehingga umpan balik visual yang sesuai dapat diatur. Untuk daftar efek penurunan yang valid, lihat DragDropEffects enumerasi.

    Nota

    Peristiwa DragOver dan GiveFeedback dipasangkan sehingga saat mouse bergerak melintasi target drop, pengguna diberi umpan balik -tanggal yang paling up-topada posisi mouse.

  • Jika nilai DragAction adalah Drop, nilai efek penurunan dikembalikan ke sumber, sehingga aplikasi sumber dapat melakukan operasi yang sesuai pada data sumber; misalnya, memotong data jika operasi adalah pemindahan.

  • Jika nilainya DragAction adalah Cancel, DragLeave peristiwa akan dinaikkan.

Untuk informasi selengkapnya tentang menangani peristiwa, lihat Menangani dan Meningkatkan Peristiwa.

Berlaku untuk

Lihat juga