Maison > développement back-end > C++ > le corps du texte

Pourquoi mon contrôle de navigateur Web dans Visual Studio fonctionne-t-il mal lors de la définition de FEATURE_BROWSER_EMULATION sur IE10 ou IE11 ?

Patricia Arquette
Libérer: 2024-11-04 10:15:02
original
504 Les gens l'ont consulté

Why does my Web Browser control in Visual Studio malfunction when setting FEATURE_BROWSER_EMULATION to IE10 or IE11?

Problèmes d'émulation du contrôle du navigateur Web avec FEATURE_BROWSER_EMULATION

Description du problème :

Lors de l'utilisation du Web Contrôle du navigateur dans Visual Studio 2013, la définition de la clé de registre FEATURE_BROWSER_EMULATION pour l'application sur les valeurs d'émulation IE10 ou IE11 entraîne un dysfonctionnement du contrôle. Plus précisément, le sélecteur de date de mois sur une page de démonstration de Dojo Toolkit (http://demos.dojotoolkit.org/demos/calendar/demo.html) ne fonctionne pas correctement.

Solution :

Le problème réside dans le paramètre de registre FEATURE_NINPUT_LEGACY_MODE. La désactivation de ce paramètre, ainsi que l'activation d'autres fonctionnalités via la configuration du registre, résout le problème. Voici une solution révisée :

const int POLL_DELAY = 250;
WebBrowser _webBrowser;

// set WebBrowser features, more info: http://stackoverflow.com/a/18333982/1768303
static void SetWebBrowserFeatures()
{
    // don't change the registry if running in-proc inside Visual Studio
    if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
        return;

    var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);

    var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";

    Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
        appName, GetBrowserEmulationMode(), RegistryValueKind.DWord);

    // enable the features which are "On" for the full Internet Explorer browser

    Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
        appName, 1, RegistryValueKind.DWord);

    // Disable FEATURE_NINPUT_LEGACY_MODE
    Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
        appName, 0, RegistryValueKind.DWord);
}
Copier après la connexion

Avec cette configuration mise à jour, le contrôle du navigateur Web devrait désormais fonctionner correctement avec les paramètres d'émulation IE10 et IE11 pour l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!