Entwickler-Ecke

IO, XML und Registry - HTML-Datei anzeigen


Basher - Di 24.08.10 21:57
Titel: HTML-Datei anzeigen
Hallo,

wollte mir mit Hilfe des "Webbrowser"-tool eine selbst erstellte html-Datei anzeigen lassen. Wenn ich die html-Datei ganz einfach lasse, also ohne frames, dann funktioniert das auch. Habe jetzt aber eine Seite mit Frames, warum wird die Seite jetzt nicht mehr angezeigt, ich sehen im jeden Frame nur die Namen der html-Seite.

Hier der C#-Code


C#-Quelltext
1:
2:
3:
4:
5:
6:
public HelpForm()
        {
            InitializeComponent();
            StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + @"../../help/index.html");
            webBrowser1.DocumentStream = sr.BaseStream;
        }


Danke.

Basher


jaenicke - Di 24.08.10 22:27

Du nimmst einen Stream um die Datei auszulesen. Das Verzeichnis ist aber ein anderes als das aktuelle Arbeitsverzeichnis.

Da die WebBrowser-Klasse deinen Originaldateinamen nicht kennt, hat diese auch keinerlei Möglichkeit die enthaltenen Webseiten der Frames zu finden (es sei denn du nimmst absolute Pfadangaben, aber das wäre ja Blödsinn).

Wenn du also nicht zu dem Speicherort der Datei navigieren möchtest, sondern die Daten der Datei selbst auslesen musst, dann wird das mit Frames kaum zuverlässig klappen. Du kannst versuchen das aktuelle Arbeitsverzeichnis entsprechend vorher zu setzen, keine Ahnung ob das reicht.


Th69 - Mi 25.08.10 10:20

Daher wäre es wohl sinnvoller direkt "WebBrowser.Url" zu benutzen (anstatt des Streams)...


Basher - Mi 25.08.10 13:08

Hmm okay,

und wie mache ich das jetzt? Hab ja die index.html bei mir auf dem Rechner (lokal), ist ja in dem Sinne keine url-Addresse. Also in dem WebBrowser soll man nur die index.html sehen.

Basher


Yogu - Mi 25.08.10 13:46

Wo befinden sich denn die Dateien für die Frames? Sind die auch auf der Festplatte? Dann kannst du doch versuchen, den Dateipfad als URL anzugeben.


Basher - Mi 25.08.10 14:30

Die Dateien befinden sich mit in dem Programm-Ordner auf der Festplatte. Wollte eine realtive Pfadangabe machen, damit, wenn ich das programm auf einen anderen Rechner teste, es auch funktioniert.

Basher