QueryContinueDragEventHandler Temsilci

Tanım

bir ControlQueryContinueDrag olayını işleyecek yöntemi temsil eder.

public delegate void QueryContinueDragEventHandler(object sender, QueryContinueDragEventArgs e);
public delegate void QueryContinueDragEventHandler(object? sender, QueryContinueDragEventArgs e);

Parametreler

sender
Object

Bir olayın kaynağı.

Örnekler

Aşağıdaki örnekte, iki ListBox denetimi arasındaki sürükle ve bırak işlemi gösterilmektedir. Ö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 bulunduğunu varsayar. 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.EffectDragDropEffects.Noneolarak 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ı, QueryContinueDrag olayıyla QueryContinueDragEventHandler temsilcisinin kullanılmasını gösterir. Kod örneğinin tamamı için DoDragDrop yöntemine bakın.

private void ListDragSource_QueryContinueDrag(object sender, QueryContinueDragEventArgs e)
{
    // Cancel the drag if the mouse moves off the form.
    ListBox lb = sender as ListBox;

    if (lb != null)
    {
        Form f = lb.FindForm();

        // Cancel the drag if the mouse moves off the form. The screenOffset
        // takes into account any desktop bands that may be at the top or left
        // side of the screen.
        if (((Control.MousePosition.X - screenOffset.X) < f.DesktopBounds.Left) ||
            ((Control.MousePosition.X - screenOffset.X) > f.DesktopBounds.Right) ||
            ((Control.MousePosition.Y - screenOffset.Y) < f.DesktopBounds.Top) ||
            ((Control.MousePosition.Y - screenOffset.Y) > f.DesktopBounds.Bottom))
        {
            e.Action = DragAction.Cancel;
        }
    }
}

Açıklamalar

bir QueryContinueDragEventHandler temsilcisi oluşturduğunuzda, olayı işleyecek yöntemi tanımlarsınız. Olayı olay işleyicinizle ilişkilendirmek için, olaya temsilcinin bir örneğini ekleyin. Olay işleyicisi, temsilciyi kaldırmadığınız sürece olay gerçekleştiğinde çağrılır. Temsilcileri olan olayları işleme hakkında daha fazla bilgi için bkz. olayları işleme ve oluşturma.

Uzantı Metotları

GetMethodInfo(Delegate)

Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Ayrıca bkz.