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

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

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

Re[3]: WebBrowserを使用したエディターでのUndoが


(過去ログ 122 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■73181 / inTopicNo.1)  WebBrowserを使用したエディターでのUndoが
  
□投稿者/ タッチ (11回)-(2014/08/26(Tue) 11:53:20)

分類:[VB.NET/VB2005 以降] 

No73148 他でWebBrowserを使用したエディターについて質問したタッチと申します。
(WebBrowserのDomDocument.designMode = "On"にしたWebBrowserを使用・開発言語:VB2008)

Undo(いわゆる「元に戻す」)機能を実装したくて、以下のようなコードを書きました。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    WebBrowser1.Document.ExecCommand("Undo", False, Nothing)
End Sub

これ自体はうまく動いたのですが、例えば、WebBrowserの右クリックメニューで
「ソースの表示」を選択してソースを表示すると、とたんにUndoが効かなくなります。
ただし、それ以降のテキスト編集についてはUndoが効き、その後「ソースの表示」をやっても
それ以前の編集状態に戻すことも可能でした。
(一番最初の「ソースの表示」の状態までは戻すことができる。)

WebBrowserで「ソースの表示」を行った場合、WebBrowser内部では何が起こっているのでしょうか?
また、「ソースの表示」以外でUndoが効かなくなる場合にはどのようなケースがあるでしょうか?

逆にいえば、最初に「ソースの表示」を行った時と同じ状態を作り出すことができれば、
それ以降はUndoを利用できるのではないかと期待できるので、
この辺の情報をご存知の方がいらっしゃいましたらアドバイスの程、よろしくお願いします。

なお、このUndoが効かなくなる現象は、以下のPCで発生していることを確認しています。
・Windows 7(64bit)・IE10搭載
・Windows Vista(32bit)・IE7搭載
 ※ちなみに、EXEはx86でビルドしています。

Windows7(32bit)でIE11搭載のPCではこの現象は見られず、問題なくUndoができていました。

どうぞよろしくお願いします。

引用返信 編集キー/
■73182 / inTopicNo.2)  Re[1]: WebBrowserを使用したエディターでのUndoが
□投稿者/ 魔界の仮面弁士 (100回)-(2014/08/26(Tue) 12:18:42)
No73181 (タッチ さん) に返信
> WebBrowserで「ソースの表示」を行った場合、WebBrowser内部では何が起こっているのでしょうか?
内部動作は掲示板の利用者には知りえぬ情報ですし、公式のプロフェッショナルサポートに
問い合わせても教えては貰えないと思います。

> また、「ソースの表示」以外でUndoが効かなくなる場合にはどのようなケースがあるでしょうか?
これは分からないのでノーコメント。

> 逆にいえば、最初に「ソースの表示」を行った時と同じ状態を作り出すことができれば、
目的に沿っていないかも知れませんが、文字通りのソース表示を行うのであれば、
{ED016940-BD5B-11cf-BA4E-00C04FD70816} (CGID_WebBrowser)に対して、
IOleCommandTarget.Exec で、コマンドとして HTMLID_VIEWSOURCE (= 2) を
呼び出すことになります。


> Windows7(32bit)でIE11搭載のPCではこの現象は見られず、問題なくUndoができていました。
恐らくは、現行製品では修正されている問題なのだと思います。
Win7x64 + IE11 でも再現しませんでしたし。

# 再現しないので、今回の質問の追加検証ができません…。
引用返信 編集キー/
■73183 / inTopicNo.3)  Re[2]: WebBrowserを使用したエディターでのUndoが
□投稿者/ タッチ (12回)-(2014/08/26(Tue) 12:56:11)
魔界の仮面弁士様、いつもありがとうございます。

とりあえず、WebBrowserのコンテキストメニューは使用しないこととし、
(IsWebBrowserContextMenuEnabledをFalseにする)
他にUndoが効かなくなることがあるかを探したいと思います。

色々とお付き合い頂き、誠にありがとうございました。
今後ともよろしくお願い申し上げます。
解決済み
引用返信 編集キー/
■73184 / inTopicNo.4)  Re[1]: WebBrowserを使用したエディターでのUndoが
□投稿者/ 魔界の仮面弁士 (101回)-(2014/08/26(Tue) 13:19:53)
No73181 (タッチ さん) に返信
> WebBrowserで「ソースの表示」を行った場合、WebBrowser内部では何が起こっているのでしょうか?

関連するかもしれない情報:
http://www.codeproject.com/Articles/602674/Solving-Undo-Redo-Problems-with-the-MSHTML-Editor
引用返信 編集キー/
■73185 / inTopicNo.5)  Re[3]: WebBrowserを使用したエディターでのUndoが
□投稿者/ タッチ (13回)-(2014/08/26(Tue) 15:14:41)
魔界の仮面弁士様、本当にお世話になります。
頂いたサイトを頑張って読んでみます。

魔界の仮面弁士様には心より感謝申し上げます。
貴重な情報、誠にありがとうございました。
またご厄介になるかもしれませんが、今後とも何卒よろしくお願い申し上げます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -