Na komponentě (control) kde chcete přijmout drag&drop nastavte
AllowDrop = true;
a pro zachycení událostí použitejte event handlery začínající slovem Drag. Zejména DragEnter a DragDrop. Následuje ukázka, kterou jsem našel na netu.
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
this.AllowDrop = true;
this.DragEnter += new DragEventHandler(Form1_DragEnter);
this.DragDrop += new DragEventHandler(Form1_DragDrop);
}
void Form1_DragEnter(object sender, DragEventArgs e) {
if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
}
void Form1_DragDrop(object sender, DragEventArgs e) {
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in files) MessageBox.Show(file);
}
}
Pro víc info doporučuji samozřejmě MSDN. A na závěr upozornění: jsou tam problémy s právy. Pokud Vám VS normálně běží s Admin právy a spustíte aplikaci pomocí F5 nebo Ctrl+F5, pak nebude registrovat přetahování z procesů, které neběží s admin právy.
|