Appeler form mère [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
23 février 2012
-
Messages postés
15117
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 novembre 2020
-
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

Messages postés
14737
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 novembre 2020
148
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
Messages postés
15117
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 novembre 2020
461
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
Messages postés
15117
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 novembre 2020
461
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
Messages postés
15117
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 novembre 2020
461
non


Whismeril
Messages postés
8
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
23 février 2012

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;
Messages postés
8
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
23 février 2012

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
Messages postés
15117
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 novembre 2020
461
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
Messages postés
8
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
23 février 2012

j'ais rien compris :'(
plus clair svp
Messages postés
8
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
23 février 2012

re
savez vous comment simuler un port serie??