C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 68 を表示中)
■39749 / )  Re[3]: ウェブブラウザで表示したデータをクリックして、編集
□投稿者/ 魔界の仮面弁士 (1208回)-(2009/08/12(Wed) 21:13:34)
2009/08/12(Wed) 21:26:22 編集(投稿者)
No39743 (RT さん) に返信
> 魔界の仮面弁士さん、
名指しは止めましょう。私以外の人も回答してくださっていますよ。


> 下の文章の方のやり方は分りますでしょうか?
> > 今、使用変更を検討してまして、ウェブブラウザ上で、選択した部分のテキストを取得して、
TD 全体のテキストであれば、No39742 の方法で InnerText を得れば OK です。


選択した範囲のテキストという意味であれば、
> > WebBrowserのdocumentをmshtml.HTMLDocumentにキャストして
> > .selection.createRange().text
に近いですが、それで取得できるのはあくまでも VB の場合。

mshtml.HTMLDocument にしても mshtml.IHTMLDocument2 にしても、
.selection.createRange() の戻り値は object 型なので、C# の場合には、
それを mshtml.IHTMLTxtRange にキャストしないと、.text にアクセスできません。


> 別ウィンドウに表示して、
Windows フォームを開くという意味であれば、新規 Form のインスンタンスを生成して、
Show メソッドなり ShowModalDialog メソッドなりを呼び出せば OK です。

ブラウザのウィンドウを開くという意味であれば、
webBrowser1.Document.Window.Open メソッドを利用できます。


> > 編集するということを考えています。

編集結果を反映させるには、InnerText 等を直接書き換えるなど、幾つかの手法がありますが、
いっそのこと、WebBrowser 上で直接編集させてしまっては駄目ですか?

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.Body.SetAttribute("contentEditable", "true");
}

返信 編集キー/


管理者用

- Child Tree -