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 :

Ouvrir une fenêtre et fermer une autre fenetre [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 62
    Points : 24
    Points
    24
    Par défaut Ouvrir une fenêtre et fermer une autre fenetre
    Bonjour a tous !

    Je suis débutant en C#, donc je m'initie petit a petit depuis hier car je dois créer une mini application pour mon entreprise dans le cadre de mon stage.

    La page concerné par mon problème est une page de connexion. J'ai deux boutons et deux textbox login et mdp. Quand je clique sur "Valider", j'ai une messagebox qui s'affiche avec "Connexion réussie" a l'intèrieur.

    Mon soucis, c'est que je souhaite afficher une nouvelle fenêtre (Form2) suite a ce messagebox et fermer mon Form1. Après certaines je recherche j'ai trouvé comment instancier mon form2 et l'afficher. Problème : Quand je valide la messagebox, 1) si j'écris "form1.close();" tout se ferme, 2) la fenetre form2 s'ouvre puis se ferme directement et c'est mon principale problème.

    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
    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
    58
    59
    60
    61
    62
    63
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
     
    namespace WindowsFormsApp3
    {
        public partial class Form1 : Form
        {
            Form Form2 = new Form();
            public Form1()
            {
                InitializeComponent();
     
            }
     
            public void button2_Click(object sender, EventArgs e)
            {
     
                try
                {
                    SqlConnection con = new SqlConnection("Server=(local); Database= Seica_Takaya;Integrated Security = SSPI; ");
                    SqlDataAdapter sda = new SqlDataAdapter("SELECT count(*) FROM Loginmdp WHERE util='" + textBox1.Text + "' AND mdp='" + textBox2.Text + "'", con);
                    DataTable dt = new DataTable();
                    sda.Fill(dt);
     
                    if (dt.Rows[0][0].ToString() == "1")
                    {
                        MessageBox.Show("Connexion réussie ! ");
                        Form2.Show();
     
     
     
     
                    }
                    else
                    {
                        MessageBox.Show("Identifiant / Mot de passe faux. Veuillez resaisir votre identifiant et mot de passe.");
                    }
     
                }
                catch(SqlException ex)
                {
                    MessageBox.Show("SQL EXCEPTION : " + ex.Message);
                }
     
     
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                this.Close();
            }
     
     
        }
    }
    Et biensur, je ne trouve pas la solution sur internet.

    Merci d'avance !

  2. #2
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Bonjour,

    Je ne sais pas a quoi sert le Button1_Click mais un petit this.Close() apres le Form2.Show() devrait faire l'affaire.

    Edit: je viens de tester en winform , ce n'est pas le même comportement , utilise this.Hide() au lieu de this.Close()
    throw new NoSignatureException();

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Form1 semble être le point d'entré de ton programme si te le fermé ton programme entier se fermé aussi.
    Donc soit :
    - Tu ne fermé pas form1 mais tu le cache .hide
    - Tu modifie le point d'entré de ton programme

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    D'acc. Merci. Je vais le hide alors et je le fermerai dans mon Form2. Vous auriez une idée pour le bug de fenetre ?

    Edit : je ne peux pas faire de form1.hide. Il me souligne le hide en rouge et il n'est pas dans la liste des options après form1. ?

    Edit : Oubliez tout ce que je viens de dire. Ma fenetre form2 s'ouvrez et se fermez directement parce que j'avais une erreur dans mon fichier Form1.Design.cs. J'avais un label non déclaré et ca faisait crasher mon application........ Merci en tout cas!

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Si tu ferme form1 dans form2 le problème sera le même peut importe d'où part l'ordre.
    Quel bug d'affichage ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    This.hide() puisque tu te trouve dans l'instance de form1

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    J'ai edit mon précédent message a propos du bug d'ouverture de ma fenetre form2. Pour ce qui est du hide, comment je peux fermer totalement Form1 alors. Si je le hide seulement, le processus tournera encore derrière non ?

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Le "processus" est ton programme il gère form1 et form2...
    Oui l objet form1 existe toujours il n'est pas détruit avec un hide.
    Si tu souhaite le détruire il ne faut pas que ton programme lance directement form1, ce que j'appelle le point d'entré.
    Je suis sur un phone et n'est pas de vs sous la main.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 62
    Points : 24
    Points
    24
    Par défaut
    Ok pas de soucis tkt merci pour tout ! je peux me débrouiller pour le reste !

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

Discussions similaires

  1. Fermer une fenêtre à partir d'une autre (non parent)
    Par medhan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2013, 14h32
  2. Réponses: 1
    Dernier message: 21/12/2007, 21h27
  3. Fermer une fenêtre DOS dans une application MFC
    Par Jahjouh dans le forum Visual C++
    Réponses: 4
    Dernier message: 19/01/2007, 14h29
  4. Comment fermer une fenêtre Child dans une application MDI
    Par bahiatoon dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/10/2006, 08h57
  5. Réponses: 11
    Dernier message: 06/12/2005, 08h23

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