Control.DragEnter Olay

Tanım

Bir nesne denetimin sınırları içine sürüklendiğinde oluşur.

public:
 event System::Windows::Forms::DragEventHandler ^ DragEnter;
public event System.Windows.Forms.DragEventHandler DragEnter;
public event System.Windows.Forms.DragEventHandler? DragEnter;
member this.DragEnter : System.Windows.Forms.DragEventHandler 
Public Custom Event DragEnter As DragEventHandler 

Olay Türü

Örnekler

Aşağıdaki kod örneği, iki ListBox denetim arasındaki sürükle ve bırak işlemini gösterir. Örnek, sürükleme eylemi başlatıldığında yöntemini çağırır DoDragDrop . Fare olay sırasında MouseDown fare konumundan daha fazla SystemInformation.DragSize hareket ettiyse sürükleme eylemi başlar. IndexFromPoint yöntemi, olay sırasında sürüklenecek öğenin dizinini MouseDown belirlemek için kullanılır.

Örnekte, sürükle ve bırak işlemi için özel imleçlerin kullanılması da gösterilmektedir. Örnek, 3dwarro.cur özel sürükleme ve bırakmama imleçleri için uygulama dizininde sırasıyla iki imleç dosyası ve 3dwno.curöğesinin mevcut olmasını gerektirir. İşaretlenirse UseCustomCursorsCheckCheckBox özel imleçler kullanılır. Özel imleçler olay işleyicisinde GiveFeedback ayarlanır.

Klavye durumu, shift, CTRL, ALT veya CTRL+ALT tuşlarının durumuna bağlı olarak sürükleme işleminin ne olacağını belirlemek için sağ ListBoxiçin olay işleyicisinde değerlendirilirDragOver. Bırakma işleminin ListBox gerçekleşeceği konum da olay sırasında DragOver belirlenir. Bırakacak veriler bir Stringdeğilse, DragEventArgs.Effect içinde olarak NoneDragDropEffectsayarlanır. Son olarak, bırakmanın durumu içinde DropLocationLabelLabelgörüntülenir.

Sağ ListBox için bırakacak veriler olay işleyicisinde DragDrop belirlenir ve String değeri içinde ListBoxuygun yere eklenir. Sürükleme işlemi formun sınırlarının dışına taşınırsa, olay işleyicisinde QueryContinueDrag sürükle ve bırak işlemi iptal edilir.

Bu kod alıntısı, olayı kullanmayı DragEnter gösterir. DoDragDrop Tam kod örneği için yöntemine bakın.

void ListDragTarget_DragEnter( Object^ /*sender*/, System::Windows::Forms::DragEventArgs^ /*e*/ )
{
   // Reset the label text.
   DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragEnter(object sender, DragEventArgs e)
{
    // Reset the label text.
    DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles ListDragTarget.DragEnter
    ' Reset the label text.
    DropLocationLabel.Text = "None"
End Sub

Açıklamalar

Olay DragEnter , kullanıcı sürükle ve bırak işlemi sırasında fare imlecini denetimin üzerine ilk kez sürüklediğinde tetikler.

Not

.NET Framework 2.0'dan önceki sürümlerde, bir Windows Formuna ile DragEnter ve olayları koyar UserControl ve tasarım zamanında DropDrop bir şeyi sürükleyip üzerine UserControl bırakırsanız ve DropEnterDragDrop olayları tetiklenir. Ancak, çözümü DragEnter kapatıp yeniden açtığınızda ve DragDrop olayları yeniden tetiklenmez.

Aşağıda, sürükle ve bırak işlemleriyle ilgili olayların nasıl ve ne zaman tetiklediği açıklanmaktadır.

yöntemi geçerli DoDragDrop imleç konumu altındaki denetimi belirler. Ardından denetimin geçerli bir bırakma hedefi olup olmadığını denetler.

Denetim geçerli bir bırakma hedefiyse, GiveFeedback olay sürükle ve bırak efekti belirtilen şekilde oluşturulur. Sürükle ve bırak efektlerinin listesi için numaralandırmaya DragDropEffects bakın.

Fare imleci konumu, klavye durumu ve fare düğmesi durumundaki değişiklikler izlenir.

  • Kullanıcı bir pencereden dışarı taşınırsa, DragLeave olay tetikler.

  • Fare başka bir denetime girerse, DragEnter bu denetimin değeri yükseltilir.

  • Fare hareket eder ancak aynı denetimde kalırsa, DragOver olay tetikler.

Klavye veya fare düğmesi durumunda bir değişiklik olursa, QueryContinueDrag olay oluşturulur ve sürüklemeye devam edileceğini, verileri bırakılıp bırakılmayacağını veya olayın QueryContinueDragEventArgsözelliğinin Action değerine göre işlemi iptal edip etmeyeceğini belirler.

  • değeri DragAction iseContinueDragOver, işlemi devam etmek için olay oluşturulur ve uygun görsel geri bildirimin ayarlanabilmesi GiveFeedback için olay yeni efektle oluşturulur. Geçerli bırakma efektlerinin listesi için numaralandırmaya DragDropEffects bakın.

    Not

    DragOver ve GiveFeedback olayları, fare bırakma hedefi boyunca hareket ettikçe kullanıcıya farenin konumuyla ilgili en güncel geri bildirim verilecek şekilde eşleştirilir.

  • değeri DragAction ise Drop, bırakma efekti değeri kaynağa döndürülür, böylece kaynak uygulama kaynak verilerde uygun işlemi gerçekleştirebilir; örneğin, işlem bir taşıma işlemiyse verileri kesin.

  • değeri DragAction iseCancelDragLeave, olay oluşturulur.

    Not

    X ve Y özellikleriDragEventArgs, istemci koordinatlarında değil ekran koordinatlarındadır. Aşağıdaki Visual C# kodu satırı özellikleri bir istemciye Pointdönüştürür.

    Point clientPoint = targetControl.PointToClient(new Point(de.X, de.Y));
    

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ayrıca bkz.