Bagikan melalui


ToolStripItem.DragEnter Kejadian

Definisi

Terjadi ketika pengguna menyeret item ke area klien item ini.

public:
 event System::Windows::Forms::DragEventHandler ^ DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler? DragEnter;
[<System.ComponentModel.Browsable(false)>]
member this.DragEnter : System.Windows.Forms.DragEventHandler 
Public Custom Event DragEnter As DragEventHandler 

Jenis Acara

Atribut

Contoh

Contoh kode berikut menunjukkan cara mengonversi X properti dan Y menjadi klien Point. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk ToolStripRenderer kelas .

// This method defines the DragOver event behavior. 
protected override void OnDragOver(DragEventArgs dea)
{
    base.OnDragOver(dea);

    // Get the ToolStripButton control 
    // at the given mouse position.
    Point p = new Point(dea.X, dea.Y);
    ToolStripButton item = this.GetItemAt(
        this.PointToClient(p)) as ToolStripButton;

    // If the ToolStripButton control is the empty cell,
    // indicate that the move operation is valid.
    if( item == this.emptyCellButton )
    {
        // Set the drag operation to indicate a valid move.
        dea.Effect = DragDropEffects.Move;
    }
}
' This method defines the DragOver event behavior. 
Protected Overrides Sub OnDragOver(dea As DragEventArgs)
   MyBase.OnDragOver(dea)
   
   ' Get the ToolStripButton control 
   ' at the given mouse position.
   Dim p As New Point(dea.X, dea.Y)
   Dim item As ToolStripButton = CType(Me.GetItemAt(Me.PointToClient(p)), ToolStripButton)
   
   
   ' If the ToolStripButton control is the empty cell,
   ' indicate that the move operation is valid.
     If item Is Me.emptyCellButton Then
         ' Set the drag operation to indicate a valid move.
         dea.Effect = DragDropEffects.Move
     End If
 End Sub

Keterangan

Peristiwa DragEnter dinaikkan saat pengguna pertama kali menyeret kursor mouse ke atas item selama operasi seret dan letakkan.

Keterangan berikut menjelaskan bagaimana dan kapan peristiwa yang terkait dengan operasi seret dan letakkan dinaikkan.

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

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

Perubahan posisi kursor mouse, status keyboard, dan status tombol mouse dilacak dengan cara berikut:

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

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

  • Jika mouse bergerak tetapi tetap berada dalam item 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 acara QueryContinueDragEventArgs.

Jika nilai 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.

Peristiwa DragOver dan GiveFeedback dipasangkan sehingga saat mouse bergerak melintasi target penurunan, pengguna diberi umpan balik terbaru tentang posisi mouse, sebagai berikut:

  • 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 nilai DragAction adalah Cancel, DragLeave peristiwa dinaikkan.

Catatan

Properti XDragEventArgs dan Y berada dalam koordinat layar, bukan koordinat klien.

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

Berlaku untuk