Hej. Hej,AllowDrop ...
Jag har gjort ett litet program där man kan läsa in en textfil och sedan med en knapptryckning, genererar lite kod till en annan fil.
Eftersom att det är "jobbigt" att öppna och söka efter filen, så skulle jag istället vilja kunna släppa den aktuella text-filen någonstans över programmet, för att läsa in den, frågan är bara hur?!
Någon som kan hjälpa en väldigt grön kille med en tydlig förklaring?
Tack på förhand!Sv: AllowDrop ...
Jag är också grön - på det här med drag & drop iallafall. Men, jag gjorde ett till synes lyckat experiment med ett enkelt formulär med en textbox. Tanken var att jag skulle kunna dra en fil från explorer och släppa den på formuläret varvid textboxen skulle fyllas med filens namn. Så här gjorde jag:
Skapade två hanterare för 'drag enter' resp. 'drag drop' eventen:
private void OnDragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
textBox1.Text = ((string[]) e.Data.GetData(DataFormats.FileDrop))[0];
}
}
private void OnDragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop) )
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
Sedan kopplade jag dessa till motsvarande event på textboxen resp formuläret (så att man kan släppa filen på både formuläret och textboxen):
this.textBox1.DragDrop += new System.Windows.Forms.DragEventHandler(OnDragDrop);
this.textBox1.DragEnter += new System.Windows.Forms.DragEventHandler(OnDragEnter);
this.DragDrop += new System.Windows.Forms.DragEventHandler(OnDragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(OnDragEnter);
Ovanstående kod fixade jag till i metoden InitializeComponent.
/Anders