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

C# Discussion :

création d'une popup


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut création d'une popup
    bonsoir, j'aimerais créer un composant simple, j'aimerais au moins savoir si je pourrais me passer de l'héritage, ou sinon, si on pourrait étudier ça ensemble svp.

    bon voila, j'aimerais créer des popup avec contenu dynamique.
    j'aimerais creer une popup avec :
    - un titre,
    - des label et textbox dont je préciserais le nom, de même pour des combobox (par datasource) et checkbox si possible.

    puis un simple bouton annuler et valider afin de fermer le formulaire tout en récupérant les valeurs saisies.

    serait-ce possible ? bien que j'essaie depuis très peu de temps de créer des composants...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Sur quelle techno ? Windows Forms, WPF, Silverlight... ?

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 203
    Points
    2 203
    Par défaut
    Citation Envoyé par thor76160 Voir le message
    bonsoir, j'aimerais créer un composant simple, j'aimerais au moins savoir si je pourrais me passer de l'héritage, ou sinon, si on pourrait étudier ça ensemble svp.

    bon voila, j'aimerais créer des popup avec contenu dynamique.
    j'aimerais creer une popup avec :
    - un titre,
    - des label et textbox dont je préciserais le nom, de même pour des combobox (par datasource) et checkbox si possible.

    puis un simple bouton annuler et valider afin de fermer le formulaire tout en récupérant les valeurs saisies.

    serait-ce possible ? bien que j'essaie depuis très peu de temps de créer des composants...
    C'est plutôt biblique si tu parles de forms ou WPF, en revanche, sur du web, faudra probablement tripatouillé du JavaScript; mais bon, 99.5% des développeurs qui ont fait de l'IHM ont du passer par ton besoin.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    c'est pour du winform, en application lourde ^^
    en gros, tout le contraire de ce que vous me conseillez xD
    promis, la prochaine appli sera en WPF, faudra juste que je trouve d'excellent cours d'initiation !

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 203
    Points
    2 203
    Par défaut
    Ben pour du winform c'est très simple :

    Tu crées un form
    Ton title part dans le Text
    Tu ajoute un layout à 2 colonnes
    Tu crée une méthode qui permet d'ajouter un couple label + Text

    Dans ton code :
    Tu crées un instance
    Tu utilises showmodal et tu géres le retour.

    C'est vraiment biblique..

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    B.AF et au passage t'a pas répondu à la question...

    ca ne lui explique pas du tout comment gérer un popup... car par popup on peut entendre plusieurs choses...

    donc la question est, qu'entends tu par popup ?
    comme sous les navigateurs où ca signifie affichage d'une nouvelle fenêtre modale avec plein de bordel dedans, en ce cas la solution de B.AF est la bonne. c'est ni plus ni moins qu'afficher des fenêtre modales.

    ou alors tu entend popup au sens petite fenêtre contextuelle souvent menu contextuel ?

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 203
    Points
    2 203
    Par défaut
    Citation Envoyé par cinemania Voir le message
    B.AF et au passage t'a pas répondu à la question...
    je crois plutôt que c'est toi qui cette fois n'a pas lu la question :

    bon voila, j'aimerais créer des popup avec contenu dynamique.
    j'aimerais creer une popup avec :
    - un titre,
    - des label et textbox dont je préciserais le nom, de même pour des combobox (par datasource) et checkbox si possible.

    puis un simple bouton annuler et valider afin de fermer le formulaire tout en récupérant les valeurs saisies.
    Si ça c'est un menu contextuel moi je suis vendeur dans un sexshop.

  8. #8
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    bon en fait voila, je développe une appli qui doit ajouter dans une base de données des infos comme :
    - des carrosseries
    - des marques de voitures...

    j'aimerais créer une popup avec les textbox prévu pour tous :
    - carrosserie : nom_carrosserie
    - marque voiture : nom_marque, logo (openfiledialog).

    peut-etre y aura t'il aussi des checkbox ou autre ...

    alors j'aimerais créer dynamiquement la structure de ma popup pour que les champs dont j'ai besoin soient générés.
    ensuite ... pour l'ajout dans la base de données...
    j'aimerais 2 boutons : annuler et valider
    pour le bouton valider, je dispose de fonctions en linqtosql présentes dans différentes classes.

    voici un bref exemple de code, pour une marque de voiture, sur le bouton valider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    marque_voiture une_marque = new marque_voiture();
    une_marque.nom_marque_voiture = nom_marqueTextBox.Text;
    une_marque.logo = logoTableauBytes;
     
    marque_voitureDAL.DataAccessInsert(une_marque);
    Attention, je précise qu'il y a plusieurs couche de classes : marque_voiture et marque_voitureDAL sont différentes.
    le DAL permet les insert, update et delete.
    je ne maitrise pas encore ces notions complètement, mais ça viendra ^^

    je ne sais pas s'il est possible d'assigner des évènements sur des boutons créés dynamiquement, mais si c'est possible, il faudrait que j'y assigne la fonction DataAccessInsert de la classe marque_voitureDAL pour un ajout de marque de voiture, de la classe carrosserieDAL pour un ajout de carroserie ...

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    la méthode fournit par B.AF correspond à tes besoins...

    tu créé tes popup comme des forms... et tu les affiche dans les forms antérieure comme des "Dialogbox"...

    tu créé la structure de base de ta popup (form) et dans les load event, tu met le code nécessaire pour générer dynamiquement les composants manquant au design et pouvant etre défini qu'a l'exécution...

    effectivement B.AF ce coup si j'étais dans les choux

  10. #10
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    non je ne pense pas que tu étais dans les choux, mais je dois avouer que je n'avais pas donner beaucoup de détails, j'avais peur que donner trop d'infos pouvait faire perdre de vue ce que je voulais atteindre ...

    j'essaierais cette astuce tant tôt, merci

    je vous tiendrais au courant !

  11. #11
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Citation Envoyé par B.AF Voir le message
    Si ça c'est un menu contextuel moi je suis vendeur dans un sexshop.
    Bah tu es vendeur dans un sexshop alors...
    Il avait dit "petite fenêtre contextuelle souvent menu contextuel"
    Souvent ne signifie pas tout le temps.
    Ca aurait très bien pu être une petite fenêtre déroulante contextuelle à un champs, comme par exemple ce qu'on trouve dans les composants DevExpress tels que le CalcEdit.
    Son énoncé d'origine laisse franchement le doute sur ce qu'il veut.

  12. #12
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    bon, je vais passer pour un ignorant mais tant pis, qu'entends tu par ajouter un laoyout à 2 colonnes ?

    Bon, imaginons que je suis dans ma form principale :
    voici mon évènement click sur lequel j'appelle mon popup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void MarquePictureBox_Click(object sender, EventArgs e)
    {
            Popup_ajout_expressForm mon_popup = new Popup_ajout_expressForm();
            mon_popup.ShowDialog();
    }
    comment puis faire un 'new Label()' ou autre dans mon popup à partir de ma form parente ?
    de même si je cré un combobox avec un datasource ...

  13. #13
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Un layout est un contrôle qui se place dans une fenêtre, ce contrôle est rarement visible. Ensuite les labels, textbox, ..., plutot que de les placer dans le formulaire, tu les place dans le layout. Et le layout place "intelligemment"
    Un layout à deux colonne signifie que si tu fais
    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Layout.Add(Label1);
    Layout.Add(TextBox1);
    Layout.Add(Label2);
    Layout.Add(TextBox2);
    Layout.Add(Label3);
    Layout.Add(TextBox3);

    Le layout va les organiser dans la fenêtre de la façon suivante :
    Code ascii : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    +-[Ma fenêtre]--------+
    |Label1    [TextBox1] |
    |Label2    [TextBox2] |
    |Label3    [TextBox3] |
    +---------------------+

    Instancier un control par un new (new Label) ne l'associe pas à celui qui fait cette instanciation.
    Tu dois ajouter ton controle à la collection de la form :
    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void MarquePictureBox_Click(object sender, EventArgs e)
    {
    	Popup_ajout_expressForm mon_popup = new Popup_ajout_expressForm();
    	Label lbl = new Label();
    	lbl.Text = "Salut !";
    	mon_popup.Controls.Add(lbl);
    	mon_popup.ShowDialog();
    }

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 203
    Points
    2 203
    Par défaut
    Est ce que ce genre de chose te parle ?
    Fichiers attachés Fichiers attachés

  15. #15
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    c'est pas mal, mais je viens de finir 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    // AJOUTER UNE MARQUE
            private void MarquePictureBox_Click(object sender, EventArgs e)
            {
                Popup_ajout_expressForm mon_popup = new Popup_ajout_expressForm();
     
                // TAILLE DU FORM
                mon_popup.Size = new Size(420, 200);
                mon_popup.StartPosition = FormStartPosition.CenterScreen;
     
                // TITRE DU FORM
                Label TitreForm = new Label();
                TitreForm.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                TitreForm.AutoSize = true;
                TitreForm.Text = "Ajouter une marque de voiture";
                TitreForm.Location = new Point(10, 20);
                mon_popup.Controls.Add(TitreForm);
     
                // AJOUTER UNE MARQUE
                Label Nom_marqueLabel = new Label();
                Nom_marqueLabel.Text = "Nom de la marque :";
                Nom_marqueLabel.Location = new Point(10, 57);
                mon_popup.Controls.Add(Nom_marqueLabel);
     
                TextBox Nom_marqueTextBox = new TextBox();
                Nom_marqueTextBox.Location = new Point(150, 54);
                Nom_marqueTextBox.Size = new Size(250, 20);
                mon_popup.Controls.Add(Nom_marqueTextBox);
     
                // AJOUTER UN LOGO
                Label LogoLabel = new Label();
                LogoLabel.Text = "Logo :";
                LogoLabel.Location = new Point(10, 84);
                mon_popup.Controls.Add(LogoLabel);
     
                Button ImageOpenFileDialog = new Button();
                ImageOpenFileDialog.Text = "Parcourrir";
                ImageOpenFileDialog.Location = new Point(150, 80);
                ImageOpenFileDialog.Size = new Size(75, 23);
                mon_popup.Controls.Add(ImageOpenFileDialog);
     
                // BOUTON VALIDER
                Button ValiderButton = new Button();
                ValiderButton.Text = "Valider";
                ValiderButton.Location = new Point(320, 157);
                ValiderButton.Size = new Size(80, 23);
                mon_popup.Controls.Add(ValiderButton);
     
                // BOUTON ANNULER
                Button AnnulerButton = new Button();
                AnnulerButton.Text = "Annuler";
                AnnulerButton.Location = new Point(234, 157);
                AnnulerButton.Size = new Size(80, 23);
                mon_popup.Controls.Add(AnnulerButton);
     
                mon_popup.ShowDialog();
            }
    le résultat est parfait !
    maintenant je dois ajouter des évenements sur les boutons Annuler et Valider.

    dans ces évènements, je dois éxécuter des fonctions dont je dispose dans ma fenêtre appellante, est-ce possible ?

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 203
    Points
    2 203
    Par défaut
    Citation Envoyé par thor76160 Voir le message
    dans ces évènements, je dois éxécuter des fonctions dont je dispose dans ma fenêtre appellante, est-ce possible ?
    Passes par un controlleur, pour propager les events.

  17. #17
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Button Valider_marqueButton = new Button();
                Valider_marqueButton.Text = "Valider";
                Valider_marqueButton.Location = new Point(320, 157);
                Valider_marqueButton.Size = new Size(80, 23);
                Valider_marqueButton.Click += new System.EventHandler(Valider_marqueButton_click);
                mon_popup.Controls.Add(Valider_marqueButton);
    ok c'est bon, et maintenant comment puis-je récupérer la valeur d'un controle de ce formulaire ?

  18. #18
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 203
    Points
    2 203
    Par défaut
    Citation Envoyé par thor76160 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Button Valider_marqueButton = new Button();
                Valider_marqueButton.Text = "Valider";
                Valider_marqueButton.Location = new Point(320, 157);
                Valider_marqueButton.Size = new Size(80, 23);
                Valider_marqueButton.Click += new System.EventHandler(Valider_marqueButton_click);
                mon_popup.Controls.Add(Valider_marqueButton);
    ok c'est bon, et maintenant comment puis-je récupérer la valeur d'un controle de ce formulaire ?
    Tu as la réponse dans le proto que je t'ai donné.

  19. #19
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    merci je vais voir

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

Discussions similaires

  1. [Généralités] Création d'une fenêtre popup avec la Flat API
    Par Patrice Terrier dans le forum WinDev
    Réponses: 8
    Dernier message: 26/05/2014, 09h34
  2. création d'une fenetre popup
    Par seyli1234 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/04/2012, 07h50
  3. création d'une popup
    Par aza806 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/01/2012, 22h30
  4. Création d'une popup
    Par leloup84 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2006, 16h13
  5. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31

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