Control.GiveFeedback 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.
Sürükleme işlemi sırasında gerçekleşir.
public:
event System::Windows::Forms::GiveFeedbackEventHandler ^ GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler GiveFeedback;
public event System.Windows.Forms.GiveFeedbackEventHandler? GiveFeedback;
member this.GiveFeedback : System.Windows.Forms.GiveFeedbackEventHandler
Public Custom Event GiveFeedback As GiveFeedbackEventHandler
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şladığında yöntemini çağırır DoDragDrop . Sürükleme eylemi, fare olay sırasında MouseDown fare konumundan daha fazla SystemInformation.DragSize hareket ettiyse 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.curvar 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ırakmanın 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ı GiveFeedback gösterir. DoDragDrop Tam kod örneği için yöntemine bakın.
void ListDragSource_GiveFeedback( Object^ /*sender*/, System::Windows::Forms::GiveFeedbackEventArgs^ e )
{
// Use custom cursors if the check box is checked.
if ( UseCustomCursorsCheck->Checked )
{
// Sets the custom cursor based upon the effect.
e->UseDefaultCursors = false;
if ( (e->Effect & DragDropEffects::Move) == DragDropEffects::Move )
::Cursor::Current = MyNormalCursor;
else
::Cursor::Current = MyNoDropCursor;
}
}
private void ListDragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
// Use custom cursors if the check box is checked.
if (UseCustomCursorsCheck.Checked)
{
// Sets the custom cursor based upon the effect.
e.UseDefaultCursors = false;
if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
Cursor.Current = MyNormalCursor;
else
Cursor.Current = MyNoDropCursor;
}
}
Private Sub ListDragSource_GiveFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles ListDragSource.GiveFeedback
' Use custom cursors if the check box is checked.
If (UseCustomCursorsCheck.Checked) Then
' Set the custom cursor based upon the effect.
e.UseDefaultCursors = False
If ((e.Effect And DragDropEffects.Move) = DragDropEffects.Move) Then
Cursor.Current = MyNormalCursor
Else
Cursor.Current = MyNoDropCursor
End If
End If
End Sub
Açıklamalar
Sürükle GiveFeedback ve bırak işlemi başlatıldığında olay tetikleniyor. Olayla GiveFeedback birlikte, sürükle olayının kaynağı, sürükle ve bırak işlemi sırasında kullanıcıya görsel geri bildirim sağlamak için fare işaretçisinin görünümünü değiştirebilir.
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, DoDragDrop geçerli imleç konumunun 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 belirtilen sürükle ve bırak efektiyle 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 oluşturulur.
Fare başka bir denetime girerse, DragEnter bu denetimin değeri oluşturulur.
Fare hareket eder ancak aynı denetim içinde kalırsa, DragOver olay tetikler.
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 QueryContinueDragEventArgsözelliğinin Action değerine göre işlemi iptal etmek için belirlenir.
değeri DragAction ise
ContinueDragOver, olay işleme devam etmek için oluşturulur ve GiveFeedback uygun görsel geri bildirimin ayarlanabilmesi için olay yeni etkiyle oluşturulur. Geçerli bırakma efektlerinin listesi için numaralandırmaya DragDropEffects 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.
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 ise
CancelDragLeave, olay oluşturulur.
Olayları işleme hakkında daha fazla bilgi için bkz . Olayları İşleme ve Oluşturma.