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 :

WinForms : Passage d'attributs


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut WinForms : Passage d'attributs
    Bonjour,

    Je me retrouve avec un petit souci de débutant en C# et winforms.

    Voilà, j'ai une classe Form1 qui est ma fenêtre principale.
    Dans un menu, quand je clique sur exit, une méthode vérifie que le travail courant a bien été sauvegardé depuis la dernière modif. Si oui, il quitte, sinon il ouvre une fenêtre proposant de sauvegarder.

    Cette dernière fenêtre est une autre classe nommée save qui hérite de Form

    Seulement, je voudrais, depuis cette classe accéder à la méthode Form1.save();
    Mais si je fais hériter save de Form1, le design de save est ajouté à celui de Form1.

    Le passage par référence de Form1 à save est impossible puisque this est en lecture seule, évidemment.


    Pour résumer :
    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
    public partial class Form1 : Form
    {
     
    // ...
     
      private void onClose()
      {
          // verif du travail courant
          if(pas sauvegardé)
          {
            save s = new save();
            s.Show();
          }
      }
     
      public save()
      {
        // ...
      }
     
    // ...
     
    }
    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
    public partial class save : Form
    {
       public save()
       {
           InitializeComponent();
       }
     
        private void onClose(object sender, EventArgs e)
        {
               // là, je voudrais avoir accès à mon instance de Form1
              // pour modifier un attribut de la classe et lancer la méthode close()
        }
     
        private void onSave(object sender, EventArgs e)
        {
            // là, je voudrais avoir accès à mon instance de Form1
           // pour modifier un attribut de la classe et lancer la méthode save()
        }
    }
    Sinon, je me demande s'il y a moyen de passer une valeur de retour à la classe save de manière à ce que depuis la classe Form1 je sache sur quel bouton de la fenêtre save j'ai cliqué.

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

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

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Constructeur de save :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Save(Form1 mainForm) 
    {
        this.mainForm = mainForm;
    }
    Dans OnClose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Save s = new Save(this);

  3. #3
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Connais tu les MessageBox ? Ce sont des fenêtres toutes simples, qui affichent des boutons standards(yes / no / Ok cancel / retry). Dans ta mainForm, tu ouvres une messagebox, et si son DialogResult (qui indique quel bouton l'utilisateur a cliqué) est ok, tu fais this.Save().

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Dans ce cas, je passe une copie. Ca ne m'intéresse pas.
    Je souhaite que la classe save() agisse sur mon instance de la classe Form1.

    Ou alors je souhaite, depuis ma classe save() juste avant que la winform ne se ferme, retourner une valeur à mon instance de Form1 selon laquelle je peux savoir si je dois sauvegarder ou pas avant de fermer.


    Edit pour Guulh:
    Je vais essayer ça, merci

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

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

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Citation Envoyé par Gibou Voir le message
    Dans ce cas, je passe une copie.
    Non, tu passes l'objet.
    Citation Envoyé par Gibou Voir le message
    Je souhaite que la classe save() agisse sur mon instance de la classe Form1.
    C'est ce qui se passe.
    PS : la solution de Guulh est celle que l'on utilise généralement. A toi de voir.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Alors, en effet, la solution de Guulh marche très bien.

    Je vais voir avec ta façon de faire, comme tu dis.

    Merci à vous deux !

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

Discussions similaires

  1. Passage d'attributs via Tiles
    Par lucares dans le forum Struts 1
    Réponses: 1
    Dernier message: 07/04/2012, 11h26
  2. Passage d'attribut de requête
    Par Vince57 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/01/2010, 16h07
  3. Réponses: 2
    Dernier message: 09/08/2006, 16h06
  4. [C#] Winforms passage de données...
    Par T0xF0x dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/12/2005, 10h14
  5. [C#] [WinForms] Passage de fenetres...
    Par lololefada dans le forum Windows Forms
    Réponses: 29
    Dernier message: 19/07/2004, 16h15

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