Hallo liebe Gemeinde,
ich möchte gern einen simplen Filebrowser in meine Application einbauen. Das hat auch funmtioniert.
Beispiel:
webBrowser1.Navigate(@"c:\temp\"); //Testpath
Meine Idee ist nun, eine Art "Dateivorschau" in einem 2. webBrowser Control naneben zu realsieren.
sofern ein Dokument mit der Maus "markiert" wird, soll im 2. webBrowser eine Vorschau des Dokumentes erscheinen. Das sind meist PDF, Word, Excel oder MSG-Dateien.
Die Anzeige der Dokumente im webBrowser ist nicht das Problem.
Wie kann ich im webBrowser Control abfragen, welche Datei gerade ausgewählt wurde und mir den Dateinamen als string zurückgeben lassen?
Habt Ihr für mich vielleicht einige Denkanstöße? Bei Google findet man meist nur etwas zu HTML-dateien, was in meinem Fall ja nicht der Fall ist.
Vielen dank im Voraus für Eure Hilfe. 😃
Viele Grüße Sven
Hallo,
du meinst, während der Anwender mit der Maus über einen Link "hovered"?
Jedes HtmlDocument-Element (HtmlElement) hat ein MouseOver-Ereignis, s. z.B. Get word from Web browser control on mouse hover event (also den Code so anpassen, daß für jedes Link-Element das MouseOver
-Ereignis abonniert wird).
PS: Mittels HtmlElement.GetAttribute kommst du an die "Target"-Url:
if (htmlElement.TagName == "A") // anchor element
{
string url = htmlElement.GetAttribute("href");
// ...
}
Hallo,
Danke für Deine Antwort.
Nein, wenn der Nutzer einen Eintrag markiert.
Im webbrowser wird ja eine Liste der Dateien aus dem Ordner C:\Temp angezeigt.
Wenn ich jetzt auf eine Datei in der Liste klicke (nur einmal, dass es markiert ist) dann soll der Name zurückgegeben werden.
Hab gesehen, dass es auch Click-Ereignis gibt. Ich werde das mal testen und dann berichten.
DANKE
Den WebBrowser sollte man eigentlich gar nicht mehr verwenden, denn er basiert auf einer uralten, wirklich ur-ur-alten IE7 (mit Registry Eintrag IE8) Engine.
Warum verwendest Du denn überhaupt für diese Aufgabe? Dafür ist er ja eigentlich nicht gedacht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
gibt es denn eine Alternative um in einer Anwendung einen simplen Filebrowser zu erstellen und die Dacoumente auch aus der Anwendung heraus zu starten?
Du willst ein Web Browser als File Browser verwenden?
Macht doch keinen Sinn.
Dafür hast du in Winforms schon fertige Controls.
Hier musst du das Rad nicht neu erfinden.
Warum willst du aber über einen File Browser Dokumente ausführen?
Das sollte man eigentlich nie über einen File Browser machen sondern direkt im Explorer.
Ansonsten spricht auch nichts dagegen, wenn du die Datei auswählst und ein von dir umgesetzter Prozess dann die ausgewählte Datei verarbeitet.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
T-Virus, les mal die Beiträge.
Er verwendet den Browser zum Auflisten; kein Open File Dialog.
gibt es denn eine Alternative um in einer Anwendung einen simplen Filebrowser zu erstellen und die Dacoumente auch aus der Anwendung heraus zu starten?
Nein, weil .NET ein Entwicklungsframework ist und prinzipiell nicht unbedingt fertige Komponenten liefert.
Ja, Du musst das Zeugs auslesen und in einer Tabelle anzeigen.
Das Problem ist, dass Du halt einfach hier den Browser "missbrauchst" (okay, es funktioniert einfach - passt); aber im Falle vom Webbrowser das Ding einfach uralt ist - und auch nicht in der neuen .NET Welt verfügar ist; und das ist gut so.
Die einzige "echte" Browser-Alternative für das WebBrowser-Control ist das CefSharp-Projekt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Habe gerade selber noch mal den WebBrowser
ausprobiert. Dieser (bzw. genauer der "Internet Explorer (IE)") verwendet bei (lokalen) Verzeichnissen intern wohl eine ListView
(sieht man auch am Kontextmenü).
Da wirst du aber nicht per Code drankommen - daher rate ich dir auch zu einem eigenen Anzeige-Element, s. z.B. Windows Forms: How to Make a File Browser in C# (s.a. [Snippet] Verzeichnisse und Dateien rekursiv durchlaufen - auch wenn du keine Rekursion benötigst).
PS: Bei anderen Browsern (z.B. Firefox) wird direkt bei Klick auf eine Datei diese geöffnet (daher wußte ich erst nicht so genau, was du mit "markiert" gemeint hast).
PPS: @Abt: T-Virus meinte wohl den OpenFileDialog
als Alternative zum Auswählen einer Datei.
Hi TH
Danke für den Link. Dann werd ich mich mal etwas intensiver damit beschäftigen.
Über das WebBrowser Control war es recht einfach und hatte alles so gemacht, wie ich es brauchte.
Danke für Eure Hilfe.
Das WebBrowser Control ist so alt dass nicht mal Google Maps funktioniert.
So kann man es pimpen : https://stackoverflow.com/questions/17922308/use-latest-version-of-internet-explorer-in-the-webbrowser-control
Ich würde die Dateien in einem ListView oder als Baumstruktur in einem TreeView darstellen.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3