İngilizce dilinde oku

Aracılığıyla paylaş


DragDropEffects Sabit listesi

Tanım

Sürükle ve bırak işleminin olası etkilerini belirtir.

Bu sabit listesi, üyeleri için bit düzeyinde karşılaştırmayı destekler.

C#
[System.Flags]
public enum DragDropEffects
Devralma
DragDropEffects
Öznitelikler

Alanlar

All -2147483645

, Moveve Scroll efektlerinin Copybirleşimi.

Copy 1

Sürükleme kaynağındaki veriler bırakma hedefine kopyalanır.

4

Sürükleme kaynağındaki veriler bırakma hedefine bağlanır.

Move 2

Sürükleme kaynağındaki veriler bırakma hedefine taşınır.

None 0

Bırakma hedefi verileri kabul etmez.

Scroll -2147483648

Hedef, şu anda hedefte görünmeyen bir bırakma konumunu bulmak için sürüklenirken kaydırılabilir.

Örnekler

Aşağıdaki örnekte, kullanıcı sürükle ve bırak işlemi sırasında fareyi bırakma hedefinin üzerinde hareket ettirdiğinde numaralandırmanın kullanılması DragDropEffects gösterilmektedir. Bu örnek, yöntemi için Control.DoDragDrop sağlanan daha büyük bir örneğin bir parçasıdır.

C#
private void ListDragTarget_DragOver(object sender, DragEventArgs e)
{
    // Determine whether string data exists in the drop data. If not, then
    // the drop effect reflects that the drop cannot occur.
    if (!e.Data.GetDataPresent(typeof(System.String)))
    {
        e.Effect = DragDropEffects.None;
        DropLocationLabel.Text = "None - no string data.";
        return;
    }

    // Set the effect based upon the KeyState.
    if ((e.KeyState & (8 + 32)) == (8 + 32) &&
        (e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link)
    {
        // KeyState 8 + 32 = CTRL + ALT

        // Link drag-and-drop effect.
        e.Effect = DragDropEffects.Link;
    }
    else if ((e.KeyState & 32) == 32 &&
        (e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link)
    {
        // ALT KeyState for link.
        e.Effect = DragDropEffects.Link;
    }
    else if ((e.KeyState & 4) == 4 &&
        (e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move)
    {
        // SHIFT KeyState for move.
        e.Effect = DragDropEffects.Move;
    }
    else if ((e.KeyState & 8) == 8 &&
        (e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy)
    {
        // CTRL KeyState for copy.
        e.Effect = DragDropEffects.Copy;
    }
    else if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move)
    {
        // By default, the drop action should be move, if allowed.
        e.Effect = DragDropEffects.Move;
    }
    else
    {
        e.Effect = DragDropEffects.None;
    }

    // Get the index of the item the mouse is below. 

    // The mouse locations are relative to the screen, so they must be 
    // converted to client coordinates.

    indexOfItemUnderMouseToDrop =
        ListDragTarget.IndexFromPoint(ListDragTarget.PointToClient(new Point(e.X, e.Y)));

    // Updates the label text.
    if (indexOfItemUnderMouseToDrop != ListBox.NoMatches)
    {
        DropLocationLabel.Text = "Drops before item #" + (indexOfItemUnderMouseToDrop + 1);
    }
    else
    {
        DropLocationLabel.Text = "Drops at the end.";
    }
}

Açıklamalar

Bu numaralandırma , GiveFeedbackEventArgsve Control sınıfları tarafından DragEventArgskullanılır.

Sürükleyip bırakma işlemleri için farklı fare işaretçilerini görüntülemek için kullanabilirsiniz DragDropEffects . Örneğin, sürükle ve bırak işlemi için Copy artı simgesi, sürükle ve bırak işlemi için Move ok simgesi veya sürükleyip bırakma işlemi için içinde çizgi bulunan kırmızı bir None daire görüntüleyebilirsiniz.

Verileri hedefte şu anda görünür olmayan bir konuma bırakmak istiyorsanız, sürüklerken hedefi kaydırabilirsiniz. Hedef kaydırmayı desteklemiyorsa, sürükle ve bırak işlemine başlamadan önce bırakma konumunun hedefte göründüğünden emin olmanız gerekir. Bir hedefi kaydırmak isteyebileceğiniz bazı senaryolar aşağıdadır:

  • Metni belgeye sürüklersiniz ve metni belge penceresinde görünür olmayan bir konuma bırakmak istiyorsunuz.

  • Dosyayı bir dosya ağacına sürüklüyorsunuz ve dosyayı dosya ağacında görünür olmayan bir düğüme bırakmak istiyorsunuz.

Ş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
Windows Desktop 3.0, 3.1, 5, 6, 7

Ayrıca bkz.