(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

DragDropEffects-Enumeration

Gibt die möglichen Auswirkungen eines Drag & Drop-Vorgangs an.

Diese Enumeration verfügt über ein FlagsAttribute-Attribut, das die bitweise Kombination der Memberwerte zulässt.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

[FlagsAttribute]
public enum DragDropEffects

MembernameBeschreibung
AllDie Kombination der Effekte Copy, Move und Scroll.
CopyDie Daten aus der Quelle des Ziehvorgangs werden zum Ablageziel kopiert.
LinkDie Daten aus der Quelle des Ziehvorgangs werden mit dem Ablageziel verknüpft.
MoveDie Daten aus der Quelle des Ziehvorgangs werden in das Ablageziel verschoben.
NoneDie Daten werden vom Ablageziel nicht akzeptiert.
ScrollIm Ziel kann während des Ziehens ein Bildlauf durchgeführt werden, um eine zurzeit nicht sichtbare Einfügeposition im Ziel anzuzeigen.

Diese Enumeration wird von den folgenden Klassen verwendet: DragEventArgs, GiveFeedbackEventArgs und Control.

Sie können DragDropEffects verwenden, um bei Drag & Drop-Vorgängen andere Mauszeiger anzuzeigen. Beispielsweise können Sie ein Pluszeichen für einen Copy-Drag & Drop-Vorgang und ein Pfeilsymbol für einen Move-Drag & Drop-Vorgang anzeigen, oder einen durchgestrichenen roten Kreis für einen None-Drag & Drop-Vorgang.

Wenn Sie Daten an einer Position im Ziel einfügen möchten, die zurzeit nicht sichtbar ist, können Sie während des Ziehens einen Bildlauf im Ziel durchführen. Wenn ein Ziel keinen Bildlauf unterstützt, müssen Sie sicherstellen, dass die Einfügeposition im Ziel sichtbar ist, bevor Sie den Drag & Drop-Vorgang beginnen. In den folgenden Szenarios müssen Sie im Ziel ggf. einen Bildlauf durchführen:

  • Ein Text wird in einem Dokument an eine Position gezogen werden, die im Dokumentfenster zurzeit nicht sichtbar ist.

  • Eine Datei wird in eine Dateistruktur gezogen und soll in einen Knoten eingefügt werden, der in der Struktur zurzeit nicht sichtbar ist.

In diesem Codebeispiel wird veranschaulicht, wie die DragDropEffects-Enumeration verwendet wird, wenn der Benutzer den Mauszeiger während eines Drag & Drop-Vorgangs über das Ablageziel bewegt. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die DoDragDrop-Methode der Control-Klasse. Das vollständige Codebeispiel finden Sie unter der DoDragDrop-Methode.


private void ListDragTarget_DragOver(object sender, System.Windows.Forms.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 = CTL + 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) {

        // CTL 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.";

}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft