2008-10-05 147 views
0

我的任務是一個項目,我需要創建一個像用戶界面的Firebug的縮小版本,用戶可以加載一個HTML頁面,當他們將鼠標懸停在他們會突出顯示。該應用程序將允許用戶選擇一個表格屏幕抓取....還沒有到那個部分。.NET的螢火蟲像UI協助

有什麼建議嗎?

感謝

回答

3

嗯,我沒有使用Firebug的用戶界面,但我做了什麼你描述使用WinForms應用程序的.NET 2.0 WebBrowser控件。

基本上,我添加了WebBrowser和一個Timer控件,然後在定時器過期事件中,我使用GetCursorPos本地函數查詢鼠標位置並使用WebBrowser.Document的(HtmlDocument類)GetElementFromPoint方法(調整x和y位置相對於瀏覽器控件)。

這將返回HtmlElement在鼠標位置下的任何內容。這裏是方法的肉:

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; 
} 

當你得到HtmlElement後,你可以得到InnerHTML來解析你認爲合適的。

Richard

+0

這是一個偉大的開頭!非常感謝。 – 2008-10-06 01:55:22