IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème execution Constructeur


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Par défaut Problème execution Constructeur
    Bonjour à tous,

    J'ai créé une interface graphique sous Visual C# 2005 Express (avec l'éditeur graphique pour la mise en forme).
    Dans ce projet, j'ai fait une classe que se charge de lancer un logiciel externe et qui l'intègre dans ma form (avec l'api user 32, fonction setParent).
    Jusque là pas de souci, le logiciel externe se lance à partir d'un click bouton et il s'intègre bien dans ma form.
    Je souhaiterai maintenant lancer se programme externe à partir de mon constructeur et non plus d'un évènement. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public partial class frmMainWindow : Form
    {
            //Class pour le lancement du logiciel externe
            ProcessVideo pVideo;
     
            //Constructeur
            public frmMainWindow()
            {
                //Mise en forme par Visual C#
                InitializeComponent();
                //Ajout du panel pour l'affichage du process externe
                pVideo = new ProcessVideo;
                this.Controls.Add(pVideo.panelVideo);
                //Lancement du process externe
                pVideo.startProcess();
            }
    }
    Le problème est que le logiciel externe est lancé avant l'affichage de ma form. J'ai l'impression que la méthode startProcess s'execute avant InitializeComponent (le logiciel externe s'affiche à l'écran avant ma form!). Du coup l'intégration du logiciel externe ne fonctionne pas.
    Est-ce que quelqu'un à une idée?
    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Salut,
    C'est normal, tu n'as pas encore rendue visible ta form.

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    c'est exactement cela

    TAnt que ta form n'a pas été rendu visible, certaines propriétés, comme le handler de fenetre peut ne pas avoir été allouer par le système

    Plutot que de faire cette manipulation dans le Constructeur, je te conseillerai de le faire plutot dans le OnLoad ou le OnShow de ta forme.. cela devrait
    fonctionner dans ce cas là.

    The Monz, Toulouse

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Il vaudrait donc mieux démarrer dans le onload que dans le constructeur.

    Le Constructeur d'ou son nom : tu construis, mais il ne faut pas lancer un traitement à l'intérieur (la form ne peut s'afficher qu'à condition d'être d'abord créée)

    [edit] grilled...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Par défaut
    Merci pour vos réponses (theMonz31 toujours aussi efficace!). Je pensais que la fenetre était rendu visible pendant le initializeComponent!!
    Par contre j'ai un problème d'affichage maintenant!
    En effet le panel est coupé (je ne vois qu'une partie en haut et une partie en bas!).
    J'ai essayé de faire un refresh après mais rien ne change!.
    L'affichage revient normalement si je lance un autre panel et qu'ensuite je réaffiche l'autre!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] DLL, problème de constructeur
    Par gmonta dans le forum C#
    Réponses: 4
    Dernier message: 30/11/2005, 09h43
  2. Problème execution d'une DLL en ASP
    Par turcotm dans le forum ASP
    Réponses: 3
    Dernier message: 03/09/2005, 09h16
  3. Problème execution script perl
    Par 00sebbe dans le forum Apache
    Réponses: 1
    Dernier message: 29/08/2005, 14h43
  4. Problème executable et windows
    Par mulot49 dans le forum MFC
    Réponses: 9
    Dernier message: 17/06/2004, 09h34
  5. problème execution dll
    Par semenzato dans le forum MFC
    Réponses: 15
    Dernier message: 19/12/2003, 16h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo