Share via


Rahmen und Bildlaufleiste des WebBrowser-Controls beeinflussen

Veröffentlicht: 21. Aug 2002 | Aktualisiert: 22. Jun 2004

Von Mathias Schiffer

Das vom Internet Explorer zur Verfügung gestellte WebBrowser-Control zeigt eine vertikale Bildlaufleiste auch dann an, wenn diese überhaupt nicht benötigt wird. Auch der dreidimensionale Rahmen des Controls kann störend wirken. Wir zeigen Ihnen, wie Sie diese beiden Merkmale loswerden.

Mit dem WebBrowser-Steuerelement, das Sie über die Komponentenliste als Microsoft Internet Controls (shdocvw.dll) in Ihre Anwendung einbinden können, sind Sie in der Lage Webseiten, Grafiken oder andere Inhalte anzuzeigen.

Störend kann sich dabei aber der dreidimensionale Rahmen auswirken, den das Steuerelement bei der Anzeige von Inhalten erhält. Auch der Umstand, dass eine vertikale Bildlaufleiste selbst dann anzeigt wird, wenn diese nicht benötigt wird, ist unschön.

Bild01

Abbildung 1: Das Erscheinungsbild eines WebBrowser-Controls mit Inhalt

Entfernen des 3D-Rahmens
Das WebBrowser-Control weist leider nicht, wie andere Steuerelemente, eine Appearance- und BorderStyle-Eigenschaft auf, über die man den dreidimensionalen Rahmen beeinflussen könnte. Dies liegt daran, dass der Rahmen um das Dokument, das im WebBrowser-Control dargestellt wird, als zum Dokument gehörend betrachtet wird.

Für eine Änderung dieser Eigenschaft ist es also notwendig, dass ein Dokument bereits in das Steuerelement geladen wurde und über die Document-Eigenschaft bereitsteht. Dies ist mit Eintritt des Ereignisses DocumentComplete des WebBrowser-Controls gegeben. In diesem Ereignis kann daher die Eigenschaft border belegt werden, die sich vom Document-Objekt aus über die Kette Document.body.Style.border erreichen lässt:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, _
                                         URL As Variant)
  ' Entfernen des 3D-Rahmens um ein Dokument im WebBrowser:
  WebBrowser1.Document.body.Style.border = "none"
End Sub

Bild02

Abbildung 2: Der dreidimensionale Rahmen wurde entfernt

Bildlaufleiste des WebBrowser-Controls ausblenden
Die stets angezeigte Bildlaufleiste können Sie in gleicher Weise im DocumentComplete-Ereignis beeinflussen: Soll sie nur dann angezeigt werden, wenn Sie benötigt wird, um durch den Inhalt Scrollen zu können, setzen Sie hierfür die Eigenschaft Document.body.Scroll auf "auto":

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, _
                                         URL As Variant)
  ' Die Bildlaufleiste nur anzeigen, wenn sie benötigt wird:
  WebBrowser1.Document.body.Scroll = "auto"
End Sub

Möchten Sie die Bildlaufleiste generell ausgeblendet wissen, so verwenden Sie als Eigenschaftswert "no":

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, _
                                         URL As Variant)
  ' Die Bildlaufleiste generell ausblenden:
  WebBrowser1.Document.body.Scroll = "no"
End Sub

Bild03

Abbildung 3: Rahmen und Bildlaufleiste wurden entfernt