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

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Variable de form à form ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable de form à form ?

n°928839
bleup
Posté le 21-12-2004 à 09:35:10  profilanswer
 

Voilà mon problème de la journée :
 
J'ai un form qui traite des variables ! (form1) et depuis ce form1 j'ouvre un autre form ! qui doit utiliser les valeurs de ces variables.. mais bien entendu dans le form2 elle n'existe pas ! comment faire pour passer mes paramètres de form à form ?

mood
Publicité
Posté le 21-12-2004 à 09:35:10  profilanswer
 

n°928847
FlorentG
Unité de Masse
Posté le 21-12-2004 à 09:40:57  profilanswer
 

Utilise des propriétés.

n°928852
bleup
Posté le 21-12-2004 à 09:44:32  profilanswer
 

Propriétés ?
 
 
J'ai du mal à comprendre ?  
Un exemple simple sera le bien venu !!

n°928854
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-12-2004 à 09:46:24  profilanswer
 

utilise des accesseurs get/set et des variables private:
ex dans la Form1 :

Code :
  1. class Form1
  2. {
  3.    private int _a;
  4.  
  5.    public int a
  6.    {
  7.       get
  8.       {
  9.          return _a;
  10.       }
  11.       set
  12.       {
  13.          _a = value;
  14.       }
  15.    }
  16.    (..méthodes...)
  17. }


et dans Form2 :

Code :
  1. class Form2
  2. {
  3.    public static void Main()
  4.    {
  5.       myForm fm = new Form1();
  6.       fm.a = 69;
  7.       int toto = fm.a
  8.       Console.WriteLine(toto); / affiche 69
  9.    }
  10. }

n°928865
FlorentG
Unité de Masse
Posté le 21-12-2004 à 09:51:18  profilanswer
 

Genre tu définies une propriétés dans ton Form2 (j'espère que tu connais les propriétés, hein ;) ). Et puis quand tu instancie ton Form2 à partir de ton Form1, tu met la valeur qui va bien dans ton form2.
 
Exemple en VB.NET (pas beaucoup de changements avec C#) :
 

Code :
  1. Class Form2
  2.   Inherits System.Windows.Forms.Form
  3.   Private _ValeurAFiler As Integer
  4.   Public Property ValeurAFiler() As Integer
  5.     Get
  6.       Return Me._ValeurAFiler
  7.     End Get
  8.     Set(Byval Value As Integer)
  9.       Me._ValeurAFiler = Value
  10.     End Set
  11. End Property
  12. [... Reste de la classe ...]
  13. End Class


 
Ensuite dans ton form1, là où tu veux ouvrir le form2 :
 

Code :
  1. Dim F2 as New Form2()
  2. F2.ValeurAFiler = XXX


 
Avec XXX ce que tu veux donner.
 
 
Une autre possibilitée est de mettre un autre constructeur à Form2 qui prend les bon paramètres, donc tu rajoutes genre ça dans ton Form2
 

Code :
  1. Public Sub New(Byval ValeurAFiler As Integer)
  2.  
  3.   MyBase.New()
  4.   Me.InitializeComponent()  ' Ca c'est pour le form designer
  5.   Me._ValeurAFiler = ValeurAFiler
  6. End Sub


 
Avec bien-sûr une variable membre qui s'appelle _ValeurAFiler
 
EDIT : Grilled By Harkonnen... J'aurais pas dû taper tout à la main dans la case "Réponse rapide" :D


Message édité par FlorentG le 21-12-2004 à 09:51:59
n°928888
bleup
Posté le 21-12-2004 à 10:11:13  profilanswer
 

Merci à vous 2 !!  
Ca marche tip top !

n°929102
bleup
Posté le 21-12-2004 à 12:52:06  profilanswer
 

Form1

Code :
  1. public struct f_axe
  2. {
  3.   public int v_axe_X;
  4.   public int v_axe_Y;
  5.   public int v_ID;
  6. }
  7. public f_axe[] axe_point = new f_axe[1000];


Par exemple la valeur de axe_point[3].v_axe_X et de 123 dans le Form1
 
Form2

Code :
  1. WinForm imp_variable = new WinForm();


 

Code :
  1. imp_variable.axe_point[3].v_axe_X;


 
Mais si je la passe dans le Form2 elle vaut 0.. pourquoi ?? comment faire pour garder les valeurs ?

n°929280
bleup
Posté le 21-12-2004 à 15:49:53  profilanswer
 

personne peut m'aider ?

n°929287
FlorentG
Unité de Masse
Posté le 21-12-2004 à 15:56:08  profilanswer
 

Déjà, les variables membres publiques, cai mal  :o

n°929292
bleup
Posté le 21-12-2004 à 16:00:26  profilanswer
 

Sinon a la compilation il y a des problèmes si je les mets pas en public, je demande qu'à me faire aider ! je suis là pour ça


Message édité par bleup le 21-12-2004 à 16:01:15
mood
Publicité
Posté le 21-12-2004 à 16:00:26  profilanswer
 

n°929294
FlorentG
Unité de Masse
Posté le 21-12-2004 à 16:01:53  profilanswer
 

Utilise des propriétés, regarde dans l'exemple d'Harko

n°929301
bleup
Posté le 21-12-2004 à 16:06:13  profilanswer
 

avec les  
 

Code :
  1. get
  2.       {
  3.          return _a;
  4.       }
  5.       set
  6.       {
  7.          _a = value;
  8.       }


 
Je comprends pas trop comment ca marche ?? ca fait quoi exactement ce bout de code ?

n°929303
FlorentG
Unité de Masse
Posté le 21-12-2004 à 16:07:01  profilanswer
 

A faire une propriété. Regarde dans la MSDN à quoi ça sert. C'est un truc ultra important !

n°930970
bleup
Posté le 23-12-2004 à 14:36:17  profilanswer
 

Je déclare ma fonction avec un tableau en 1000 cases dans mon 1er form:
 
 
public struct f_axe
{
public int v_axe_X;
public int v_axe_Y;
public int v_ID;
}
public f_axe[] axe_point = new f_axe[1000];
 
J'y mets mes valeurs:
 
axe_point[v_ind].v_axe_X=panel_Dessin.PointToClient(Cursor.Position).X;
axe_point[v_ind].v_axe_Y=panel_Dessin.PointToClient(Cursor.Position).Y;
axe_point[v_ind].v_ID=v_ind;
v_ind++;
 
 
 
J'appele mon 2ème form
 
n_preview myForm = new n_preview();
myForm.Show();
 
 
Dans mon 2ème forme pour avoir accès au variable du 1er form je tape:
WinForm imp_variable = new WinForm();
 
et j'appele mes variables:
 
imp_variable.axe_point[i].v_axe_X; //bon ici c'est un exemple pour l'appler
 
 
Donc mon problème est quand j'utilise mes variables dans le 2ème form elles sont à 0, mais quand je les lient sur le 1er form elles sont OK. Comment faire pour que le transfère de variables soit correct pour que la valeur ne s'efface pas entre le form1 et le form2 ??
 
 
Pour get, set dans un structure ca va pas..
auriez-vous une solution pour mon code source ?

n°931170
bleup
Posté le 23-12-2004 à 19:32:23  profilanswer
 

J'ai trouvé, sans les GET, SET  avec ma structure ca marchait pas !
 
Merci quand même pour vos aides,
 
Joyeux Noel


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

  Variable de form à form ?

 

Sujets relatifs
Oracle - variable globaleProbleme de variable globale.
Variable et nombre de caracteresprob de variable (debutant)
Test du contenu d'une variablepb actualisation d'une variable mysql
séparer dizaine et unité d'une variable entiere[Struts] Nombre variable de paramères dans un form ? comment ?
[HTML&ASP] Reprise d'une variable d'un form dans un textarea[VBA] Gérer les controles d'une Form avec une variable...
Plus de sujets relatifs à : Variable de form à form ?


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