none
Modifier une valeur d'un controle ActiveX avant son initialisation RRS feed

  • Discussion générale

  • Bonjour à tous.

    J'ai crée un user control WF dans lequel j'ai embeddé un controle activeX (plugin IE).
    Le fichier de contenu chargé par ce controle activeX ne peut être setté que dans les propriétés du contrôle dans VS (pas de fonction setsource() ou équivalent ...). En dur donc.

    La seule solution que j'ai trouvé pour pouvoir changer le fichier source à la demande, serait de modifier la valeur du champs source du controle activeX avant son initialisation. Mais ca coince !

    Si j'essaie de modifier la valeur avant ISupportInitialize.EndInit() dans la fonction InitializeComponent(), j'ai une exception ActiveX InvalidActiveXStateException qui est levée , et si je le fais après, cela ne sert à rien puisque le controle est déjà initialisé et le fichier apparemment chargé...

    Quelqu'un saurait comment faire ?

    Ou au pire du pire, comment réinitialiser complètement un controle ActiveX (si cela peut fonctionner) après avoir changé le fichier source de données.

    Merci d'avance !
    vendredi 21 janvier 2011 10:15

Toutes les réponses

  • Bonjour,

    En fait, vous voulez afficher une page web dans une fenêtre Windows Forms ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    lundi 24 janvier 2011 20:51
    Modérateur
  • En très gros.

     

    J'ai fait un windows form dans lequel j'appelle un user control dans lequel j'instancie un controleur activeX (j'avoue que j'ai moi aussi du mal à suivre ;p ).

     

    Le chemin du fichier contenant les données affichées par le controle activeX est setté en dur dans les propriété de l'objet dans Visual Studio, je souhaiterais pouvoir rendre cela plus flexible avec un passage de paramètres.

     

    Malheureusement, lors de la phase de InitializeComponent() qui instancie l'objet, soit j'essaie d'accéder avant la fin de l'initialisation du contrôle (cad avant  ISupportInitialize.EndInit() ) , et auquel cas je reçois une exception de type Axhost.InvalidActiveXStateException, soit j'y accède apres EndInit(), mais le contenu est déjà chargé et cela ne sert plus à rien...

     

    Au pire, puis-je attendre la fin de l'initialisation, setter ma valeur, et faire un reload du controle activeX ?

    mardi 25 janvier 2011 13:52
  • Bonjour,

    Qu'utilisez vous comme contrôle ActiveX ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    mardi 25 janvier 2011 14:09
    Modérateur