2010-08-12 3 views
0

J'ai besoin de capturer tous les événements de la souris sur un WebBrowser .NET, les traiter et empêcher le WebBrowser de les obtenir. Y'a-t-il une quelconque façon de réussir cela? Je me demande si je peux gérer les événements de la souris si le contrôle est désactivé.Comment est-ce que je peux piéger tous les événements de souris sur un contrôle?

+0

Si vous utilisez WPF, vous pouvez jeter Toile transparente au-dessus du contrôle WebBrowser et tout simplement attraper tous les événements avec le canevas ... Winforms est une histoire différente, cependant. –

+0

Dupliquer? http://stackoverflow.com/questions/3268619/catching-a-contained-controls-mouse-events-in-a-usercontrol –

+0

cela lit un peu bizarre que vous les ignoriez? Pourquoi passer par le problème si vous piègez des événements si vous n'avez aucun désir réel de faire quelque chose avec eux? Ignore les??? – IbrarMumtaz

Répondre

3

Vous devrez remplacer WndProc() pour intercepter les messages de la souris. Comme ceci:

using System; 
using System.Windows.Forms; 

class MyBrowser : WebBrowser { 
    protected override void WndProc(ref Message m) { 
     if (m.Msg >= 0x200 && m.Msg <= 0x20a) { 
      // Handle mouse messages 
      //... 
     } 
     else base.WndProc(ref m); 
    } 
} 
+0

une liste (non exhaustive) des messages Windows peut être trouvée ici http://www.autohotkey.com/docs/misc/SendMessageList.htm – Filip

3

Il existe une solution à cela. Vous devez capturer les événements de souris associés à l'objet Document associé au contrôle webBrowser.

Après l'événement DocumentCompleted se produit, et à l'intérieur vous gestionnaire d'événements DocumentCompleted, procédez comme suit:

myWebBrowser.Document.MouseDown += new HtmlElementEventHandler(myMouseDown); 

et que le gestionnaire connexe:

void myMouseDown(object sender, HtmlElementEventArgs e) 

{ 
    your code to handle the mouse event... such as ... 

      if (e.MouseButtonsPressed == MouseButtons.Right) 
      { 
      } 
} 
+0

Celui-ci a sauvé ma journée. – yyoon

Questions connexes