Control.DragEnter Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.cur
iki 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 ListBox
iç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 String
değilse, DragEventArgs.EffectDragDropEffectsiçinde None
olarak ayarlanır. Son olarak, bırakmanın durumu DropLocationLabel
Labelgörüntülenir.
Doğru ListBox
bırakacak veriler DragDrop olay işleyicisinde belirlenir ve String
değeri ListBox
uygun 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
Continue
ise, 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
Drop
ise, 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
Cancel
ise, 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.