Vous devez utiliser la propriété Document.DomDocument du contrôle WebBrowser et la transtyper dans l'interface IHtmlDocument2 fournie dans l'assembly interop Microsoft.mshtml. Cela vous donne accès au DOM complet tel qu'il est disponible pour Javascript en cours d'exécution dans IE. Pour ce faire, vous devez d'abord ajouter une référence à votre projet à l'assembly Microsoft.mshtml normalement dans "C: \ Program Files \ Microsoft.NET \ Assembleurs d'interopérabilité \ Microsoft.mshtml.dll". Il peut y en avoir plus d'un, assurez-vous de choisir la référence avec ce chemin.
ensuite pour obtenir la sélection de texte actuel, par exemple:
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);
}
}
Pour plus d'informations sur l'accès au DOM complet à partir d'une application .NET, consultez:
Wow, le contrôle est plus puissant que je pensais ! –
Si cela ne vous dérange pas la dépendance sur IE/mshtml c'est un moyen très puissant et relativement facile d'ajouter une interface utilisateur de style Web à vos applications de bureau. La communication bidirectionnelle et les événements sont également très simples, si quelqu'un est intéressé, faites le moi savoir. – Ash
Merci beaucoup. Ceci est exactement ce que je cherchais. Le projet sur lequel je travaille utilise HTML, c'est pourquoi j'ai opté pour le contrôle du navigateur Web. Je ne pouvais pas trouver un moyen d'obtenir le texte sélectionné. Merci aussi pour les sources, ils ont fourni des informations valables que je manquais juste. – Cliff