電子書籍の厳選無料作品が豊富!

 VB2005ExpressEditionで、WebBrowserを作っていますが、ソースをボタンを押すとソースを表示させるようなことはできますか?
 つまり、HTMLのなかの「<」,「>」を「&lt;」,
「&gt;」に置き換えることができればいいのですが・・・

A 回答 (1件)

お世話になります。



以下のような感じでどうでしょうか?
Form9 にはデザイナで WebBrowser と MultiLine=True にしたTextBox、
Button を 2 個つけてあります。
Load イベントで http://oshiete.goo.ne.jp/ を読み込み、
Button1 を押下すると、ページのソースを TextBox にそのまま表示します。
Button2 を押下すると、ページのソースを HTML エンコーディングして TextBox に表示します。

Public Class Form9

  Private Sub Form9_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Button1.Enabled = False
    Me.Button2.Enabled = False
    Me.WebBrowser1.Navigate("http://oshiete.goo.ne.jp/")
  End Sub

  Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Me.Button1.Enabled = True
    Me.Button2.Enabled = True
  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me.TextBox1.Text = Me.GetDocument(Me.WebBrowser1.Document.Encoding, Me.WebBrowser1.DocumentStream)
  End Sub

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim html As String = Me.GetDocument(Me.WebBrowser1.Document.Encoding, Me.WebBrowser1.DocumentStream)
    html = html.Replace("<", "&lt;")
    html = html.Replace(">", "&gt;")
    html = html.Replace(" ", "")
    html = html.Replace(ControlChars.Quote, "&quot;")
    html = html.Replace("&", "&amp;")

    Me.TextBox1.Text = System.Web.HttpUtility.HtmlEncode(html)
  End Sub

  Private Function GetDocument(ByVal enc As String, ByVal st As System.IO.Stream) As String
    Dim buff(CInt(st.Length - 1)) As Byte
    st.Read(buff, 0, CInt(st.Length))
    Return System.Text.Encoding.GetEncoding(enc).GetString(buff)
  End Function
End Class
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!