Debe usar la propiedad Document.DomDocument del control WebBrowser y convertirla a la interfaz IHtmlDocument2 proporcionada en el ensamblado de interoperabilidad de Microsoft.mshtml. Esto le da acceso al DOM completo, ya que está disponible para Javascript que realmente se ejecuta en IE.
Para hacer esto primero debe agregar una referencia de su proyecto al ensamblado de Microsoft.mshtml normalmente en "C: \ Archivos de programa \ Microsoft.NET \ Primary Interop Assemblies \ Microsoft.mshtml.dll". Puede haber más de uno, asegúrese de elegir la referencia con esta ruta.
Luego de obtener la selección de texto actual, por ejemplo:
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);
}
}
Para obtener más información sobre cómo acceder al DOM completo desde una aplicación .NET, consulte:
Guau, el control es más poderoso de lo que pensaba ! –
Si no le importa la dependencia de IE/mshtml, es una forma muy poderosa y relativamente fácil de agregar una interfaz de usuario de estilo web a sus aplicaciones de escritorio. La comunicación bidireccional y los eventos también son bastante simples, si alguien está interesado, házmelo saber. – Ash
Muchas gracias. Esto es exactamente lo que estaba buscando. El proyecto en el que estoy trabajando utiliza HTML, por lo que opté por el control del navegador web. Simplemente no pude encontrar una manera de obtener el texto seleccionado. También gracias por las fuentes, han proporcionado información valiosa que me faltaba. – Cliff