• 締切済み

VB2005ExpressEditionで、WebBrowserを作っていますが、ソースを・・

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

みんなの回答

回答No.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(" ", "&nbsp;")     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

関連するQ&A