2008-10-05 4 views
0

Je suis chargé d'un projet dans lequel je dois créer une version réduite d'une interface Firebug like, où l'utilisateur peut charger une page HTML, et en passant la souris sur les éléments qu'ils vont être mis en évidence. L'application permettra aux utilisateurs de sélectionner une table à l'écran-raclé .... n'ont pas encore atteint cette partie..NET Firebug comme l'assistance de l'interface utilisateur

Un conseil?

Merci

Répondre

3

Eh bien, je n'ai pas utilisé l'interface utilisateur Firebug, mais j'ai fait exactement ce que vous décrivez en utilisant le contrôle WebBrowser .NET 2.0 dans une application WinForms. Fondamentalement j'ai ajouté le WebBrowser et un contrôle de minuterie au formulaire puis dans l'événement écoulé de minuterie, j'interroge la position de souris en utilisant la fonction native GetCursorPos et utilise la méthode GetElementFromPoint de WebBrowser.Document (classe HtmlDocument) (ajustant le x et position y relative par rapport au contrôle du navigateur).

Ceci retourne tout ce que HtmlElement est sous la position de la souris. Voici la viande de la méthode:

HtmlElement GetCurrentElement() 
{ 
    if (Browser.ReadyState == WebBrowserReadyState.Complete && Browser.Document != null) 
    { 
     Win32Point mouseLoc = HtmlScan.Win32.Mouse.GetPosition(); 
     Point mouseLocation = new Point(mouseLoc.x, mouseLoc.y); 
     // modify location to match offset of browser window and control position: 
     mouseLocation.X = ((mouseLocation.X - 4) - this.Left) - Browser.Left; 
     mouseLocation.Y = ((mouseLocation.Y - 31) - this.Top) - Browser.Top; 

     HtmlElement element = Browser.Document.GetElementFromPoint(mouseLocation); 

     return element; 
    } 

    return null; 
} 

Une fois que vous obtenez le HtmlElement, vous pouvez obtenir le InnerHTML pour analyser comme bon vous semble.

Richard

+0

C'est un bon départ! Merci beaucoup. –