Frage

Ich habe eine Webbrowser -Steuerung und kann das ausgewählte Wort vom Benutzer erhalten. Ich speichere dieses Wort in einer Datei und speichere damit auch seinen Byte -Offset und seine Länge.

Sagen wir, ich habe einen Text in meinem Webbrowser -Steuerelement als "Hallo Hallo Hallo", sagen wir, der Benutzer hat das letzte Hallo ausgewählt.

Jetzt wird dieses Wort mit mir zusammen mit anderen Informationen wie seiner Länge usw. gespeichert.

Ich muss eine Funktion bereitstellen, um das ausgewählte Wort hervorzuheben, wenn der Benutzer die Datei neu lädt

Gibt es eine Möglichkeit, es zu tun?

War es hilfreich?

Lösung

Sie müssen die Microsoft.mshtml -Assembly -Referenz importieren, wenn Sie es noch nicht getan haben, und hinzufügen

using mshtml;

        if (webBrowser1.Document != null)
        {
            IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
            if (document != null)
            {
                IHTMLBodyElement bodyElement = document.body as IHTMLBodyElement;
                if (bodyElement != null)
                {
                    IHTMLTxtRange trg = bodyElement.createTextRange();


                    if (trg != null)
                    {
                        const String SearchString = "Privacy"; // This is the search string you're looking for.
                        const int wordStartOffset = 421; // This is the starting position in the HTML where the word you're looking for starts at.
                        int wordEndOffset = SearchString.Length;
                        trg.move("character", wordStartOffset);
                        trg.moveEnd("character", wordEndOffset);

                        trg.select();
                    }
                }
            }
        }

Hier ist ein Ausschnitt, der auch hilfreich sein könnte:

        if (webBrowser1.Document != null)
        {
            IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
            if (document != null)
            {
                IHTMLSelectionObject currentSelection = document.selection;

                IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;
                if (range != null)
                {
                   const String search = "Privacy";

                   if (range.findText(search, search.Length, 2))
                   {
                       range.select();
                   }
                }
            }
        }

Andere Tipps

Ich bin ein Anfängerprogrammierer ist meine besten Beispiele. Verbringen Sie einfach viel Zeit.

Schließen Sie einfach Ihre Bibliothek an

Projekt - Fügen Sie einen Link hinzu - Übersicht - Windows - System32 - mshtml.tlb

using mshtml;

  private void button1_Click(object sender, EventArgs e)
    {

    webBrowser1.Refresh();

        Application.DoEvents();

        if (webBrowser1.Document != null)
        {

            IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
            if (document != null)
            {
                IHTMLSelectionObject currentSelection = document.selection;

                IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;

                if (range != null)
                {
                    String search = textBox1.Text;
                    if (search == "")
                    {
                        MessageBox.Show("not selected");                          
                    }
                    else
                    {
                    line1:
                        if ((range.findText(search)) && (range.htmlText != "span style='background-color: rgb(255, 255, 0);'>" + textBox1.Text + "</span>"))
                        {
                            range.select();
                            range.pasteHTML("<span style='background-color: rgb(255, 255, 0);'>" + textBox1.Text.ToLower() + "</span>");
                            goto line1;

                        }
                    }

                }
            }
        }
      }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top