2011-07-01 7 views
0

WebBrowserコントロールを含むWindowsフォームアプリケーションがあります。今、私はWebBrowserコントロールのコピーイベント(コンテキストメニュー - >コピーとCtrl + C)を処理し、そのイベントで自分の処理のいくつかを行いたいと思います。WebBrowserコントロールのコピーイベントを検出するには?

どうすればこの問題を解決できますか?

答えて

1

もう一つの方法は、これをしました。

+0

ああ、非常に良い発見! –

1

は限りコントロール+ Cを扱うように、あなたはWebブラウザーのPreviewKeyDownイベントにwireupと行うことができます。

private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { 
    if (e.KeyData.ToString() == "C, Control") { 
     Debug.WriteLine("You pressed Control + C"); 
     // Handle here 
    } 
} 

あなたがコントロール+ Cコピー項目に、Webブラウザ上で独自のコンテキストメニューを持っている場合は、ハンドルそのクリックイベント。

private void myBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    myBrowser1.Document.GetElementsByTagName("body")[0].AttachEventHandler("oncopy", SayHello); 
} 

public void SayHello(object obj,EventArgs e) 
{ 
    MessageBox.Show("Hello"); //Do your stuff here. 
} 

これもコンテキストメニューコピーイベントのトリガ:私が見つけた

+0

返信いただきありがとうございます。私はWndProcをオーバーライドし、このコントロールのために何らかの形で起こっていないCopyメッセージを聞いて、複雑すぎる経路を辿っていました!また、私はデフォルトのコンテキストメニューを置き換えないように拘束されています。 : 'Document'を使うと' ContextMenuShowing'に行くことができます。デフォルトのCopyイベントもトラップできるかどうか分かりますか? – Mayank

+0

奇妙なハックがなければ、簡単には言えません。あなたは基本的なIHTMLDocument2 DOMインターフェイスを取得します。そこに最も近いのは、選択項目です。これは、ページ内の選択をアクティブにします。また、グローバルマウスフックを使用しても、コンテキスト内でコピーメニュー項目をクリックした私はまたIHTMLDocument3,4,5を見ましたが、あまりにも役に立たないものはありません –

+0

コンテキストメニュー全体とその機能を再作成する必要があるようです。 – Mayank

関連する問題