Variable de form à form ? - C#/.NET managed - Programmation
Marsh Posté le 21-12-2004 à 09:44:32
Propriétés ?
J'ai du mal à comprendre ?
Un exemple simple sera le bien venu !!
Marsh Posté le 21-12-2004 à 09:46:24
utilise des accesseurs get/set et des variables private:
ex dans la Form1 :
Code :
|
et dans Form2 :
Code :
|
Marsh Posté le 21-12-2004 à 09:51:18
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 :
|
Ensuite dans ton form1, là où tu veux ouvrir le form2 :
Code :
|
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 :
|
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"
Marsh Posté le 21-12-2004 à 12:52:06
Form1
Code :
|
Par exemple la valeur de axe_point[3].v_axe_X et de 123 dans le Form1
Form2
Code :
|
Code :
|
Mais si je la passe dans le Form2 elle vaut 0.. pourquoi ?? comment faire pour garder les valeurs ?
Marsh Posté le 21-12-2004 à 16:00:26
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
Marsh Posté le 21-12-2004 à 16:06:13
avec les
Code :
|
Je comprends pas trop comment ca marche ?? ca fait quoi exactement ce bout de code ?
Marsh Posté le 21-12-2004 à 16:07:01
A faire une propriété. Regarde dans la MSDN à quoi ça sert. C'est un truc ultra important !
Marsh Posté le 23-12-2004 à 14:36:17
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 ?
Marsh Posté le 23-12-2004 à 19:32:23
J'ai trouvé, sans les GET, SET avec ma structure ca marchait pas !
Merci quand même pour vos aides,
Joyeux Noel
Marsh Posté le 21-12-2004 à 09:35:10
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 ?