Control.DragEnter Olay

Tanım

Bir nesne denetimin sınırlarına sürüklendiğinde gerçekleşir.

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 denetimi arasındaki sürükle ve bırak işlemini gösterir. Örnek, sürükleme eylemi başladığında DoDragDrop yöntemini çağırır. Sürükleme eylemi, MouseDown olayı sırasında farenin fare konumundan SystemInformation.DragSize fazla hareket ettiyse başlar. IndexFromPoint yöntemi, MouseDown olayı sırasında sürüklenecek öğenin dizinini 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, özel sürükleme ve bırakmama imleçleri için uygulama dizininde sırasıyla 3dwarro.cur ve 3dwno.curiki imleç dosyasının var olmasını gerektirir. UseCustomCursorsCheck CheckBox işaretliyse özel imleçler kullanılır. Özel imleçler GiveFeedback olay işleyicisinde 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 üzere doğru ListBoxiçin DragOver olay işleyicisinde değerlendirilir. ListBox bırakmanın gerçekleşeceği konum da DragOver olayı sırasında belirlenir. Bırakacak veriler bir Stringdeğilse, DragEventArgs.EffectDragDropEffectsiçinde None olarak ayarlanır. Son olarak, bırakmanın durumu DropLocationLabelLabelgörüntülenir.

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

Bu kod alıntısı DragEnter olayının kullanılmasını gösterir. Kod örneğinin tamamı için DoDragDrop 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

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

Not

.NET Framework 2.0'dan önceki sürümlerde, Windows Form'a DragEnter ve DragDrop olayları içeren bir UserControl koyar ve tasarım zamanında bir şeyi UserControl sürükleyip bırakırsanız, DropDrop ve DropEnter olayları oluşturulur. Ancak, çözümü kapatıp yeniden açtığınızda, DragEnter 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.

DoDragDrop yöntemi, geçerli 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 DragDropEffects numaralandırmasına 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ı oluşturulur.

  • Fare başka bir denetime girerse, bu denetimin DragEnter oluşturulur.

  • Fare hareket eder ancak aynı denetim içinde kalırsa, DragOver olayı oluşturulur.

Klavye veya fare düğmesi durumunda bir değişiklik varsa, QueryContinueDrag olayı oluşturulur ve sürüklemeye devam etmek, verileri bırakmak veya olayın QueryContinueDragEventArgsAction özelliğinin değerine göre işlemi iptal etmek için belirlenir.

  • DragAction değeri Continueise, işleme devam etmek için DragOver olayı oluşturulur ve uygun görsel geri bildirimin ayarlanabilmesi için GiveFeedback olayı yeni etkiyle oluşturulur. Geçerli bırakma efektlerinin listesi için DragDropEffects numaralandırmasına bakın.

    Not

    DragOver ve GiveFeedback olayları eşleştirilir, böylece fare bırakma hedefi boyunca hareket ettikçe kullanıcıya farenin konumuyla ilgili en up-totarih geri bildirimi verilir.

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

  • DragAction değeri Cancelise, DragLeave olayı oluşturulur.

    Not

    DragEventArgs X ve Y özellikleri istemci koordinatlarında değil ekran koordinatlarındadır. Aşağıdaki Visual C# kodu satırı özellikleri Pointbir istemciye dö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ı işleme ve oluşturma.

Şunlara uygulanır

Ayrıca bkz.