.NET Firebug, например помощь в пользовательском интерфейсе
Вопрос
Мне поручен проект, в котором мне нужно создать уменьшенную версию пользовательского интерфейса, подобного Firebug, где пользователь может загрузить HTML-страницу, и когда он наводит указатель мыши на элементы, они будут выделены.Приложение позволит пользователям выбрать таблицу для очистки экрана....до этой части пока не добрался.
Любой совет?
Спасибо
Решение
Ну, я не использовал пользовательский интерфейс Firebug, но я сделал именно то, что вы описали, используя элемент управления .NET 2.0 WebBrowser в приложении WinForms.
По сути, я добавил в форму элемент управления WebBrowser и Timer, а затем в событии истекшего таймера я запрашиваю положение мыши с помощью встроенной функции GetCursorPos и использую метод GetElementFromPoint WebBrowser.Document (класс HtmlDocument) (регулируя положение 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 анализировать по своему усмотрению.
Ричард