Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Необходимо использовать Документ. Свойство 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, см.:
Я предполагаю, что у Вас есть приложение WinForms, которое включает управление, которое открывает веб-сайт.
Проверка, чтобы видеть, можно ли ввести/выполнить JavaScript в управлении webbrowser. Используя JavaScript, Вы были бы в состоянии узнать то, что было выбрано, и возвратите его. Иначе я сомневаюсь, что управление веб-браузером имеет любое знание того, что выбрано в нем.