Appeler form mère

Résolu
mourdad Messages postés 8 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 23 février 2012 - 19 févr. 2012 à 22:35
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 23 févr. 2012 à 09:28
bonsoir,
je suis débutant avec c# et j'ai un prob:
je veux appeler une forme antérieure pour changer son datagrid .
en fait je doit changer la taille selon les parametres selectinné dans une forme2
merciiiiiii

9 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
19 févr. 2012 à 23:35
Bonjour,

Tu peux définit une variable dans ta Form2 à partir de ta Form1 qui pointe sur ta Form1.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
20 févr. 2012 à 13:16
Bonjour,

NHenry te propose de passer la "référence" (c'est un gros mot en c#) à ta forme ou ta grille à ta form2.

Une façon de procéder est de demander un paramètre dans le constructeur de la forme:

        public Form2(DataGridView MaGrille)
        {
            InitializeComponent();

            MaGrille[1, 1].Value = 2;//utilisation de la variable pointant sur ta grille
        }


lors de l'initialisation de forme dans form1 tu l'écrits ainsi:

            Form2 maForm2 = new Form2(dataGridView1);
            maForm2.Show();

Whismeril
3
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
21 févr. 2012 à 14:17
Admettons que ta grille soit une liste de gens avec un nom et un prénoms.
Tu commences par écrire une classe personne, les propriétés sont au moins Nom et Prénom.

Dans ta forme, tu instancies une "List<T>" de personnes.
List mesPersonnes = new List();


Ensuite tu affectes cette liste au datasource de la grille.
Il faut que tu définisses les propriétés "AllowUserToAddRows", "AllowUserToDeleteRows","AllowUserToOrderColumns","AllowUserToResizeColumns","AllowUserToResizeRows" et "ReadOnly" en fonction des libertés que l'utilisateur aura ou pas. (tu peux aussi utiliser le binding décrit dans le premier lien du message précédent, un peu plus long à mettre en place mais plus pratique à l'utilisation).

De cette façon le datagridview sera juste une interface graphique de tes données, le colonnes sont Nom et Prénom et les lignes les personnes.

La List<T> sera la zone de mémoire vive ont sont stockées tes données pendant l'exécution. Pour être précis, il y a un espace mémoire pour la liste représentant une "boite", et un espace mémoire pour chaque instance de "personne" et un lien entre tout ça.

A ce moment, tu as une source de données facile a manipuler.

Pour en faire un fichier text, tu peux utiliser StreamWriter et StreamReader, il y a des sources d'exemple sur le site. C'est bien pour faire un fichier taboulé, un csv ou éventuellement un fichier à largeur fixe.

Perso, je préfère écrire un xml, car c'est un format à peu prés humainement lisible et ton fichier sera reconnu automatiquement par plain d'autres programmes. Dans le deuxième lien, l'utilisation de base de LinqToXml est abordée.

Whismeril
3
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
23 févr. 2012 à 09:28
non


Whismeril
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mourdad Messages postés 8 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 23 février 2012
20 févr. 2012 à 07:41
bien j'ais pas compris comment doit-je faire,
en fait j'ais une grille dans ma forme1, et un bouton qui va me diriger vers une form2;
cette forme2 va changer les paramètres de la grille;
0
mourdad Messages postés 8 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 23 février 2012
20 févr. 2012 à 13:40
merci,
maintenant j'aimerais savoir si je peux enregistrer les valeurs de la grille dans un fichier .txt puis fermer mon application et lors de l'ouverture une autre fois j'aurais mes derniers valeurs du fichier
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
20 févr. 2012 à 14:38
Oui.

La méthode que je privilégie est de créer une classe (maClasse) dont les propriétés correspondent aux colonnes de ta table.
Chaque ligne de ta grille correspondra à une instance de maClasse.
Tu crées une List<maClasse>, et cette liste sera le datasource de ta grille, voir là.

Ensuite tu peux sérializer ta List en xml (par exemple), voir ici une méthode


Whismeril
0
mourdad Messages postés 8 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 23 février 2012
21 févr. 2012 à 10:38
j'ais rien compris :'(
plus clair svp
0
mourdad Messages postés 8 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 23 février 2012
23 févr. 2012 à 09:13
re
savez vous comment simuler un port serie??
0
Rejoignez-nous