استرجاع النص المحدد من عنصر التحكم Webbrowser في .net(C#)

StackOverflow https://stackoverflow.com/questions/217353

  •  03-07-2019
  •  | 
  •  

سؤال

لقد تم في محاولة لمعرفة كيفية استرداد النص المحدد من قبل المستخدم في التحكم webbrowser و قد لا حظ بعد حفر من خلال msdn والموارد الأخرى, لذلك أنا أتساءل عما إذا كان هناك طريقة فعلا القيام بذلك.ربما أنا ببساطة غاب عن شيء.

وأنا أقدر أي مساعدة أو الموارد بخصوص هذا.

شكرا

هل كانت مفيدة؟

المحلول

تحتاج إلى استخدام الوثيقة.DomDocument خاصية عنصر التحكم WebBrowser يلقي هذا IHtmlDocument2 واجهة المتوفرة في Microsoft.mshtml تجميع إمكانية التشغيل المتداخل.هذا يتيح لك الوصول الكامل دوم كما هو متاح جافا سكريبت في الواقع يعمل في IE.

للقيام بذلك تحتاج أولا إلى إضافة مرجع إلى المشروع الخاص بك إلى Microsoft.mshtml الجمعية عادة في "C:\Program Files\Microsoft.NET\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);
        }
    }

لمزيد من المعلومات حول الوصول إلى كامل دوم من .صافي التطبيق ، انظر:

نصائح أخرى

وفقط في حالة أي شخص مهتم في الحل الذي لا يتطلب إضافة إشارة إلى MSHTML.DLL:

private string GetSelectedText()
{
    dynamic document = webBrowser.Document.DomDocument;
    dynamic selection = document.selection;
    dynamic text = selection.createRange().text;
    return (string)text;
}

وإذا أنت مجرد استخدام تقنية رفع الصوت عاليا؟

و// نسخ النص المحدد إلى الحافظة

        Clipboard.Clear();
        SendKeys.SendWait("^(c)");

و// احصل على النص المحدد من الحافظة

        string strClip = Clipboard.GetText().Trim();
        Clipboard.Clear();

وأفترض لديك تطبيق WinForms عناصر التي يتضمن جهاز التحكم الذي يفتح موقع على شبكة الانترنت.

وتحقق لمعرفة ما إذا كان يمكنك حقن / تشغيل جافا سكريبت داخل تحكم webbrowser الخاص. باستخدام جافا سكريبت، هل ستكون قادرة على معرفة ما تم اختيار وإعادته. خلاف ذلك، وأشك في عنصر تحكم مستعرض الويب لديه أي معرفة ما تم تحديده في داخله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top