• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【C#】WebBrowser上で表示されているテキストの部分取得)

【C#】WebBrowser上でテキストの部分取得

このQ&Aのポイント
  • C#を使ってWebBrowser上で表示されているテキストの一部を取得する方法を教えてください。
  • WebBrowser.Document.Body.InnerText.Substringを使用してテキストを取得する方法を試していますが、テキストの選択位置を取得する方法がわかりません。
  • 他の方法でWebBrowser上のテキストの一部を取得することは可能でしょうか?プログラミング初心者なので、分かりやすく教えていただけると嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

'VB.NETで書いているが,使っているクラスやらメソッドやらは同じなので 'C#やってれば大体想像が付くはず。 'VB.NETで使っているDirectCastは普通にキャストしてくれ。 'なお, '[.NET]タブから 'System 'System.Windows.Forms(Formや各種コントロールのため) 'System.Drawing (Sizeクラスのため) 'を, '[COM]タブから 'Microsoft HTML Object Library 【重要】 'を読み込む必要があるので注意 Namespace Q3475698 Public Class Q3475698A Shared Sub Main Dim Form1 As New Q3475698B Form1.ShowDialog End Sub End Class Public Class Q3475698B Inherits System.Windows.Forms.Form Private Webbrowser1 As System.Windows.Forms.WebBrowser Private TextBox1 As System.Windows.Forms.TextBox Private Button1 As System.Windows.Forms.Button Sub New Webbrowser1 = New System.Windows.Forms.WebBrowser TextBox1 = New System.Windows.Forms.TextBox Button1 = New System.Windows.Forms.Button Me.Size = New System.Drawing.Size(800,600) With Webbrowser1 .Left = 0 .Top = 0 .Size = New System.Drawing.Size(800,550) End With With TextBox1 .Left = 0 .Top = 550 .Size = New System.Drawing.Size(600,20) End With With Button1 .Left = 600 .Top = 550 .Size = New System.Drawing.Size(200,20) End With Me.Controls.AddRange(New System.Windows.Forms.Control(){Webbrowser1,TextBox1,Button1}) AddHandler Button1.Click,AddressOf OnButton1_Click Webbrowser1.Navigate("http://www.google.co.jp/") End Sub Private Function OnButton1_Click() As Boolean TextBox1.Text = GetSelectionText() Return True End Function Public Function GetSelectionText() As String 'MSの資料 'http://msdn2.microsoft.com/en-us/library/aa768849.aspx 'を見ると,createRangeメソッドはControlRangeであることもあるらしいが,俺は良く解らんのでのでそこら辺は自分で調べて頑張れ。 Dim Range As mshtml.IHTMLTxtRange = DirectCast(DirectCast(Webbrowser1.Document.DomDocument, mshtml.IHTMLDocument2).selection.createRange, mshtml.IHTMLTxtRange) Return Range.text End Function End Class End Namespace

booo_2007
質問者

お礼

himajin100000 様 お返事ありがとうございます. ここまで丁寧に回答をしていただき非常にうれしく思います. 私も他の人にアドバイスできるよう精進したいと思います.