Bạn cần sử dụng thuộc tính Document.DomDocument của điều khiển WebBrowser và truyền điều này đến giao diện IHtmlDocument2 được cung cấp trong hội đồng interop Microsoft.mshtml. Điều này cho phép bạn truy cập vào DOM đầy đủ như là có sẵn cho Javascript thực sự chạy trong IE.
Để thực hiện việc này, trước tiên bạn cần thêm tham chiếu đến dự án của bạn vào cụm Microsoft.mshtml bình thường tại "C: \ Program Files \ Microsoft.NET \ Primary Interop Assemblies \ Microsoft.mshtml.dll". Có thể có nhiều hơn một, đảm bảo bạn chọn tham chiếu với đường dẫn này.
Sau đó, để có được những lựa chọn văn bản hiện hành, ví dụ:
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);
}
}
Để biết thêm thông tin về truy cập vào DOM đầy đủ từ một ứng dụng .NET, xem:
Chà, quyền kiểm soát mạnh mẽ hơn tôi nghĩ ! –
Nếu bạn không nhớ phụ thuộc vào IE/mshtml, đây là một cách rất mạnh mẽ và tương đối dễ dàng để thêm giao diện người dùng kiểu web vào ứng dụng dành cho máy tính để bàn của bạn. 2 cách giao tiếp và các sự kiện cũng khá đơn giản, nếu có ai quan tâm hãy cho tôi biết. – Ash
Cảm ơn rất nhiều. Điều này thật đúng với gì mà tôi đã tìm kiếm. Dự án tôi đang làm là sử dụng HTML, đó là lý do tại sao tôi chọn kiểm soát trình duyệt web. Tôi chỉ không thể tìm ra cách để có được văn bản đã chọn. Cũng nhờ các nguồn, họ đã cung cấp thông tin đáng giá mà tôi đã bỏ lỡ. – Cliff