Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

DragDropEffects-Enumeration

 

Veröffentlicht: Oktober 2016

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

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

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

[FlagsAttribute]
public enum DragDropEffects

MembernameBeschreibung
All

Die Kombination der Copy, Move, und Scroll Effekte.

Copy

Die Daten aus der Quelle des Ziehvorgangs ist für das Dropziel kopiert.

Link

Die Daten aus der Quelle des Ziehvorgangs ist das Ablageziel verknüpft.

Move

Die Daten aus der Quelle des Ziehvorgangs werden in das Ablageziel verschoben.

None

Das Ablageziel akzeptiert keine Daten.

Scroll

Das Ziel kann Bildlauf durchgeführt werden, während Sie ziehen, um eine Dropdownliste Position zu suchen, die nicht im Ziel sichtbar ist.

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

Sie können DragDropEffects bei Drag & Drop-Vorgängen andere Mauszeiger angezeigt. Sie können z. B. ein Pluszeichen für anzeigen eine Copy Drag & Drop-Vorgang und ein Pfeilsymbol für einen Move Drag & Drop-Vorgang oder ein roter Kreis mit durchgezogener Linie symbol für eine None Drag & Drop-Vorgang.

Möchten Sie Daten an einer Position im Ziel zu löschen, die zurzeit nicht sichtbar ist, können Sie das Ziel beim Ziehen scrollen. Wenn ein Ziel das Durchführen eines Bildlaufs nicht unterstützt, müssen Sie sicherstellen, dass die Einfügeposition im Ziel sichtbar ist, bevor Sie mit den Drag & Drop-Vorgang beginnen. Es folgen einige Szenarien möglicherweise ein Ziel Bildlauf durchgeführt werden soll:

  • Ziehen Sie Text in ein Dokument, und löschen den Text an einer Position, die im Dokumentfenster nicht sichtbar sein soll.

  • Ziehen Sie eine Datei in eine Dateistruktur, und löschen die Datei auf einem Knoten in der Struktur nicht sichtbar sein soll.

Dieses Codebeispiel veranschaulicht die Verwendung der DragDropEffects -Enumeration fest, 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. Siehe die DoDragDrop Methode für das gesamte Codebeispiel dargestellt.

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
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: