Toon posts:

[C#] 'scroll to' in WebBrowser

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb m'n eigen toolbar geschreven voor InternetExplorer. In mijn toolbar kan gebruiker speciale Xml files openen, en deze aan de hand van bepaalde criteria filteren. Xml files zijn log files die verschillen van 1 tot >20mb, kunnen dus heel groot / lang worden.

Nu wil ik maken dat gebruiker in invoer veld bepaalde waarde (bijvoorbeeld een tijd) ingeeft, en de xml file die geopend is in de browser automatisch naar die positie van die tijd 'scrollt'.

---
verdere achtergrond info:
tutorials die ik heb gebruikt:
http://www.codeproject.com/useritems/IE_Advanced_Toolbar.asp
http://www.codeproject.com/csharp/dotnetbandobjects.asp

In de BandObjLib (van de bovenstaande tutorials) is voglende gedeclareerd:
C#:
1
protected WebBrowserClass Explorer;

Nu heb ik al gekeken of ik via Explorer.Document iets kan doen, maar dit is mij nog niet gelukt. Zoektocht op internet bracht me ook niet veel verder.

Iemand misschien een id?

Verwijderd

Topicstarter
kheb inmiddels wel iets gevonden:

code:
1
2
IHTMLWindow2 win = (IHTMLWindow2)doc.parentWindow;
win.scrollTo (x, y);


waarbij doc van het type HTMLDocumentClass is.

Hiermee kan ik dus scrollen naar een bepaald x, y positie.

Maar hoe zou ik nu naar precies een bepaalde regel kunnen scrollen?

Moet eigenlijk een soort van "Find" krijgen zonder die UI.

[ Voor 6% gewijzigd door Verwijderd op 27-04-2005 16:35 ]


Verwijderd

Topicstarter
mocht nog ooit iemand met zelfde komen te zitten:

code:
1
2
3
4
5
6
7
8
9
10
11
HTMLDocumentClass doc = (HTMLDocumentClass)Explorer.Document;
//voor Explorer declaratie zie openings post.

IHTMLBodyElement Body = (IHTMLBodyElement)this.doc.body;
IHTMLTxtRange TxtRange = Body.createTextRange ();

if (TxtRange.findText (sGoto, TxtRange.text.Length, 0))
{
TxtRange.scrollIntoView (true);
TxtRange.select ();
}


werkt zelfde als de internet explorer find functie (ongeveer)

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 00:44
offtopic:
Toch mooi om te zien hoe een probleem zich oplost in ca. 1,5 uur.