Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3047 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

   Une instance de classe métier pour plusieurs forms

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Une instance de classe métier pour plusieurs forms

n°1944654
darkgloom
Posté le 25-11-2009 à 16:55:32  profilanswer
 

Bonjour,
 
Je débute en c# et je suis confronté à un problème.
Je suis en train de créer un programme composé de 2 fenêtres et d'une classe métier.
Un évènement sur l'une ou l'autre des fenêtres entraine un traitement sur la classe métier.
Ma question; comment faire pour que les 2 forms travaillent sur la même classe métier ?
 
Merci d'avance  :jap:

mood
Publicité
Posté le 25-11-2009 à 16:55:32  profilanswer
 

n°1944661
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-11-2009 à 17:10:50  profilanswer
 

Tu instancies une classe métier dans ta Form principale, que tu rends accessible à l'autre Form via un accesseur (get/set)


---------------
J'ai un string dans l'array (Paris Hilton)
n°1944665
darkgloom
Posté le 25-11-2009 à 17:21:20  profilanswer
 

D'accord mais concrètement comment y accéder depuis l'autre Form ?
Parce que la classe instanciée dans la Form principale n'existe pas dans le contexte de l'autre fenêtre, et je n'ai donc pas accès à ses accesseurs.

n°1944687
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-11-2009 à 17:55:48  profilanswer
 

quand tu appelles ta form secondaire, tu lui passes en paramètre la form qui a instancié la classe métier, tu pourras ainsi avoir accés à ses propriétés :

 
Code :
  1. public class Form1
  2. {
  3.   Job myJob; // cet objet représente ta classe métier
  4.  
  5.   public Form1()
  6.   {
  7.      myJob = new Job();
  8.   }
  9.  
  10.   public Job
  11.   {
  12.      get { return myJob; }
  13.   }
  14.  
  15.   private void DoWhatever()
  16.   {
  17.      Form2 frm = new Form2(this); // tu instancies une Form2 en lui passant la Form courante en paramètre
  18.      myJob.Fonction1();
  19.      frm.DoWork();
  20.   }
  21. }
  22.  
  23. public class Form2
  24. {
  25.   Job myJob;
  26.  
  27.   public Form2(Form1 form)
  28.   {
  29.      myJob = form.Job; // tu récupères le job de Form1
  30.   }
  31.  
  32.   private void DoWhatever()
  33.   {
  34.      myJob.Fonction1();
  35.      myJob.Fonction2();
  36.      // etc
  37.   }
  38.  
  39.   public void DoWork()
  40.   {
  41.      MessageBox.Show("Kikoo lol ! asv ? " );
  42.   }
  43. }
 

edit: si tu utilises C# 3.0, tu peux utiliser les accesseurs simplifiés.
edit2 : rajout de code pour instancier la Form2


Message édité par Harkonnen le 25-11-2009 à 18:13:22

---------------
J'ai un string dans l'array (Paris Hilton)
n°1944713
darkgloom
Posté le 25-11-2009 à 18:38:45  profilanswer
 

Ça marche, merci :)


Message édité par darkgloom le 25-11-2009 à 18:54:46

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

   Une instance de classe métier pour plusieurs forms

 

Sujets relatifs
(DEBUTANT) Probleme de classe en c++[C++] classe array 1d et delete[]
[C++] Map statique dans une classe[Architecture] Utiliser une classe en dev / test et une autre en prod
[RESOLU] - Script de copie de dossier en BAT vers plusieurs [...][RESOLU]Plusieurs requetes SQL en une seul sous forme de tableau
Shell : Découper un fichier en plusieurs fichiers[html] Problème sur un formulaire avec plusieurs boutons submit
[PHP] Bonne pratique du métier : association clé / valeurChoisir plusieurs fichiers pour un htaccess?
Plus de sujets relatifs à : Une instance de classe métier pour plusieurs forms


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR