Mario Schneider - Software
 
... praktische Tools für jedermann!
software.marioschneider-online.de 
 

Drag 'n' Drop

Code-Snippet

Dot Net (C#): Drop von Dateien / Ordnern

1. Vorbereitung:

"AllowDrop"-Property setzen und 2 Events anmelden:

   1:  public MainForm()
   2:  {
   3:      InitializeComponent();
   4:      this.textboxDir.AllowDrop = true;
   5:      this.textboxDir.DragOver += new DragEventHandler(textboxDir_DragOver);
   6:      this.textboxDir.DragDrop += new DragEventHandler(textboxDir_DragDrop);
   7:  }

2. Drag Over-Event:

DataFormat überprüfen und DragDropEffects setzen:

   1:  void textboxDir_DragOver(object sender, DragEventArgs e)
   2:  {
   3:      if (e.Data.GetDataPresent(DataFormats.FileDrop))
   4:      {
   5:          e.Effect = DragDropEffects.Move;
   6:      }
   7:  }

3. Drag-Drop-Event:

Drop auswerten:

   1:  void textboxDir_DragDrop(object sender, DragEventArgs e)
   2:  {
   3:      if (e.Effect == DragDropEffects.Move) // if move
   4:      {
   5:          if (e.Data.GetDataPresent(DataFormats.FileDrop)) // if file drop
   6:          {
   7:              string[] dirNames =
   8:                  (string[])e.Data.GetData(DataFormats.FileDrop);
   9:              if (dirNames.Length.Equals(1)) // wenn genau eine datei
  10:              {
  11:                  if (MSUtils.FileUtil.dirExists(dirNames[0]))
  12:                  {
  13:                      this.textboxDir.Text = dirNames[0];
  14:                  }
  15:              }
  16:          }
  17:      }
  18:  }