Dienstag, 17. Juni 2008

Dot Net (C#): Drag & Drop

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 = (string[])e.Data.GetData(DataFormats.FileDrop);
   8:              if (dirNames.Length.Equals(1)) // wenn genau eine datei
   9:              {
  10:                  if (MSUtils.FileUtil.dirExists(dirNames[0]))
  11:                  {
  12:                      this.textboxDir.Text = dirNames[0];
  13:                  }
  14:              }
  15:          }
  16:      }
  17:  }

Keine Kommentare: