axWebBrowser - Drag & Drop Events abfangen?

Blubbie

Grünschnabel
Ich habe folgendes Problem:

Ich habe ein Form in dem ein axWebbrowser läuft:

this.axWebBrowser = new AxSHDocVw.AxWebBrowser();

was ich nun gerne möchte ist: Drag & Drop Events abzufangen.
Zur Zeit reagiert der axWebBrowser wie ein normaler Internet Explorer, so dass die Datei direkt angezeigt wird.

Ich will aber, dass das rein Droppen bei mir ein bestimmtes Event auslöst und ich dann eine bestimmte Funktion starten kann.

Mit dem "Form" in dem sich der axWebbrowser befindet klappt das auch super:

Code:
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.viewer_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.viewer_DragEnter);

private void viewer_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
		{
                   //mache irgendwas.....
}


Aber beim this.axWebBrowser kann ich nix machen :(
jedenfalls hat der kein:
this.axWebBrowser .DragDrop oder this.axWebBrowser .DragEnter

das einzige was nach Drag&Drop aussieht ist:
Code:
this.axWebBrowser.DoDragDrop  und  this.axWebBrowser.allowDrop

aber das kann doch nicht alles sein.
Schließlich hat der axWebBrowser eine richtige Drag & Drop funktionalität - wie der IE.
Nur will ich eben die bestehenden Events "umschreiben" so dass er nicht so reagiert wie der IE und mir z.b. eine Grafik direkt reinläd - sondern mir in einer MessageBox Name etc. ausgibt.
 
Hi.

Es gibt das Event BeforeNavigate2. Dieses wird ausgelöst bevor irgendeine neue Datei geladen wird. (Egal ob durch einen Link, oder über Drag&Drop)

Im Event hast du alle Daten zum neuen Ziel, und könntest den Ladevorgang auch abbrechen.

Übrigens, bitte halte dich ein wenig mehr an die Groß-/Kleinschreibung. :)

MfG,
Alex
 
Danke für den Tipp.
Leider hilft er mir nur nicht so richtig weiter.

Ich bekomme zwar das Event gefeuert, aber kann den Browser mit axWebbrowser.stop(); trotzdem nicht vom navigate(...) abhalten.

Außerdem habe ich dann noch das Problem, dass ich nicht an die Informationen der Drag-Objekte ran komme.

Ich benötige:
System.Windows.Forms.DragEventArgs e

damit ich z.b. den Dateipfad auslesen kann:
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
String dateipfadUNDName = files[0].ToString();
 
Hi.

Ist ja auch kein Drag&Drop-Event!

Hast du dir die Parameter des Eventhandlers angesehen?

C#:
private void browser_BeforeNavigate2(object sender,
			AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event e)
{
	// e.uRL.ToString(); - Pfad der Datei, bzw. Url..
	e.cancel = true; // Laden verhindern
}
 

Neue Beiträge

Zurück