- 締切済み
VB2005ExpressEditionで、WebBrowserを作っていますが、ソースを・・
VB2005ExpressEditionで、WebBrowserを作っていますが、ソースをボタンを押すとソースを表示させるようなことはできますか? つまり、HTMLのなかの「<」,「>」を「<」, 「>」に置き換えることができればいいのですが・・・
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- naganaga_001
- ベストアンサー率71% (172/242)
お世話になります。 以下のような感じでどうでしょうか? 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("<", "<") html = html.Replace(">", ">") html = html.Replace(" ", " ") html = html.Replace(ControlChars.Quote, """) html = html.Replace("&", "&") 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