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 :

[C#][debutant]Pb de référence circulaire entre plusieurs formulaires


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut [C#][debutant]Pb de référence circulaire entre plusieurs formulaires
    Bonjour,

    j'ai deux formulaires "popChoose" et "popChooseSingle" qui peuvent appeler (non simultanément) un meme troisieme formulaire "settings".

    Mon but : je souhaite utiliser "settings" à la maniere de la fenetre de configuration d'une impression (ex : le bouton Préférences).
    Autrement dit, à partir de "popChoose" (resp. "popChooseSingle"), je veux ouvrir settings, configurer des parametres et les sauvegarder, les retourner à la fenetre appelante (ici popChoose), fermer settings, et generer un fichier texte à partir d'un bouton dans popChoose.

    Mon pb : pour passer les parametres d'un formulaire à un autre, j'ai défini "popChoose" et "popChooseSingle" comme owner de "settings". Maintenant quand je veux fermer "settings" par this.Close(), 'this' référence le formulaire qui a appelé "settings". Au final, "settings" et le formulaire qui l'a appelé se ferment.

    Je ne sais pas comment faire pour qu'un formulaire ne soit plus proprietaire d'un autre.
    Je suis completement bloqué.

    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    Quand tu les fais apparaite utilise Form.Show() ou Form.ShowDialog()
    Si tu utilises Form.Show(this) ou Form.ShowDialog(this), la fenetre appelante sera propriétaire.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    on est tout a fait d'accord.

    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
     
    private void btnSettingsClick(object sender, System.EventArgs e)
    {
    	if (comboBox1.Text == "")
    	{
    		MessageBox.Show("You must choose a table in the list before setting the parameters", "Error") ;
    		return;
    	}
     
    	//appelle settings
    	obj_settings = new settings(comboBox1.Text); // champ "tableCorrespondante" dans la generation de fichier
    	obj_settings.Owner = this ;
    	obj_settings.ShowDialog();
     
    }
    Alors a quel moment dois-je utiliser le owner ?

    J'ai besoin de passer des parametres "dans les 2 sens".
    1) "popChooseSingle" passe 'nomTable' au constructeur de "settings"
    2) "settings" renvoie les parametres definies pour cette table en vue de la generation de fichier

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    J'ai du mal a comprendre. Les deux formulaire doivent être simultanément ouverts et communiquer ensemble?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    le 1er ouvre le 2eme avec showDialog.
    Le 1er reste ouvert.
    On travaille sur le 2eme. La validation sur le 2eme (formulaire "settings") doit permettre le passage de parametres au 1er formulaire et fermer le 2eme.
    Je suis donc a present sur le 1er formulaire et je peux generer mon fichier en fonction des parametres que j'ai recupéré.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    J'aurai fait autrement alors (dis moi ce que tu en penses),

    J'aurai exposé en tant que propriétés publiques tes paramètres. Genre si l'utilisateur rentre un paramètre dans une textbox du formulaire 2 j'aurais un code comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public string ParametreDeMaTextBox
    {
        get
        {
           return TextBox1.text;
        }
    }

    comme ca tu récupère le résultat dans ton formulaire 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Formulaire2 F2 = new Formulaire2()
    if(F2.ShowDialog()==DialogResult.OK)
    {
    string MaVariable=F2.ParametreDeMaTextBox;
    }
    Qu'en penses tu?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    en effet, ca repond bien a mon pb.

    J'avais deja declaré ces variables comme publiques.

    En revanche, je pensais que pour atteindre une variable publique, il fallait posseder le formulaire.

    Mais d'apres ce que tu dis, c'est completement indépendant.

    Je teste tout de suite
    merci

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    Pour récupérer les infos d'un formulaire à l'autre tu n'as pas besoin d'être propriétaire. Cependant il faut faire attention de bien récupérer les infos avant que la seconde fenetre soit détruite, sinon c'est l'exception.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    mon probleme persiste.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2002
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    Donne plus de détail (et/ou de bout de code). Parce que là je ne comprends plus quel est ton problème

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Points : 24
    Points
    24
    Par défaut
    tout va bien
    j'avais fait une fausse manip sur la fin.

    merci beaucoup pour votre aide qui m'a été tres utile

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/01/2013, 05h03
  2. Référence circulaire entre projets VS2005
    Par Captain_JS dans le forum C++
    Réponses: 8
    Dernier message: 23/07/2008, 02h42
  3. Partager un control entre plusieurs formulaires
    Par Romers dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/02/2008, 09h20
  4. Réponses: 1
    Dernier message: 22/08/2007, 00h05
  5. Réponses: 9
    Dernier message: 10/07/2006, 14h52

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