Получение Выделенного текста от Webbrowser управляет в .net(C#)

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

16
задан user1151923 14 December 2012 в 16:47
поделиться

2 ответа

Необходимо использовать Документ. Свойство DomDocument управления WebBrowser и броска это к интерфейсу IHtmlDocument2, обеспеченному в блоке Microsoft.mshtml interop. Это предоставляет Вам доступ к полному DOM, как доступно JavaScript, на самом деле работающему в IE.

, Чтобы сделать это сначала необходимо добавить ссылку на проект к блоку Microsoft.mshtml обычно в "C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll". Может быть больше чем один, удостоверьтесь, что Вы выбираете ссылку с этим путем.

Затем для получения выбора текущего текста, например:

using mshtml;

...

    IHTMLDocument2 htmlDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;

    IHTMLSelectionObject currentSelection= htmlDocument.selection;

    if (currentSelection!=null) 
    {
        IHTMLTxtRange range= currentSelection.createRange() as IHTMLTxtRange;

        if (range != null)
        {
            MessageBox.Show(range.text);
        }
    }

Для получения дополнительной информации о доступе к полному DOM из приложения.NET, см.:

44
ответ дан 30 November 2019 в 15:52
поделиться

Я предполагаю, что у Вас есть приложение WinForms, которое включает управление, которое открывает веб-сайт.

Проверка, чтобы видеть, можно ли ввести/выполнить JavaScript в управлении webbrowser. Используя JavaScript, Вы были бы в состоянии узнать то, что было выбрано, и возвратите его. Иначе я сомневаюсь, что управление веб-браузером имеет любое знание того, что выбрано в нем.

-1
ответ дан 30 November 2019 в 15:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: