Utiliser un objet public

Résolu
mfabio1902 Messages postés 5 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008 - 23 oct. 2008 à 10:28
mfabio1902 Messages postés 5 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008 - 23 oct. 2008 à 11:50
Bonjour,

J'ai une fenêtre Form1 qui possède une DataGrid.
J'ai créé cet objet par glissé-déposé et le code CS de Form1 est vide.

J'aimerais utiliser et modifier mon objet DataGrid dans Form2 mais il n'est pas accessible.

Comment rendre cette objet public à tout mon projet ?

Merci

Fabien

3 réponses

mfabio1902 Messages postés 5 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 23 octobre 2008
23 oct. 2008 à 11:50
Oui je sais que le fichier CS est vide et j'ai vu dans le Designer.cs que l'objet existe. J'ai modifié Modifiers pour le mettre en Public mais rien ne change.

J'ai passé mon objet DataGrid en tant que Resource dans un autre fichier, je sais que son contenu sera fixe et j'en aurai besoin souvent dans mon projet.

Dans Form2 sur l'évènement voulu je créé une nouvelle DataGrid et au lieu de faire new DataGrid(), j'appelle ma Resource.

Ca marche !






A+  et merci


Fabien
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
23 oct. 2008 à 11:33
Bonjour,

Pour ce faire, tu dois:
- soit passer ton DataGrid à Form2 en paramètre (via le constructeur).

- soit lancer des événements dans Form2 qui seront intercepté dans Form1 qui lui même fera les actions nécessaires sur le DataGrid.

Perso, je préfère largement la seconde solution car je n'aime pas trop faire passer les objets d'une form à une autre surtout lorsqu'il s'agit à la seconde form d'influencer l'objet de la première.
Comme on dit, chacun son boulot, la form1 gère ses controles et la form2 les siens. S'ils doivent dialoguer, alors j'utilise des événements.
Enfin, ce n'est que mon avis...

Je te propose de lire un lien intéressant qui t'expliquera très bien les passages de paramètres (décidement, pas une journée sans mettre ce lien ds un post => faudrait penser à mettre un lien direct de la page d'accueil pour les nouveaux ^^):
http://www.csharpfr.com/codes/PASSAGE-PARAMETRES_26735.aspx

Bonne journée,


Billou_13


PS: C'est normal que le code CS de Form1 soit vide, quand tu fais un glisser déposer, le code est génére ds le fichier "Form1.Designer.cs". Mais ton objet existe bel et bien (regarde le nom du DataGrid dans le design, tu y auras accès dans ton code
0
xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
23 oct. 2008 à 11:37
Salut,
Si tu utilise Visual Studio ou Visual c# :
Dans la fenêtre des propriétés, tu as la propriété Modifiers qui se trouve dans la catégorie  Design.
Il suffit de la passer soit à Public ou à Internal.
Les composants visuel sont composés de 2 fichiers minimums.
Exemple pour une Form nommée Form1 tu as:
Form1.cs : Le fichier où tu entre ton code
Form1.Designer.cs : Le fichier qui contient le code généré quand tu utilise le designer .
A+
0
Rejoignez-nous