Bonjours à tous !
Je me pose une petite question de "bonne pratique" en C#...
Pour faire simple :
J'ai une form FormMain, principale. Un click sur un bouton déclanche l'ouverture d'une deuxième form, FormParam, servant à configurer des options (jusque là rien de très exotique).
Et mes questions se situent à ce niveau : je souhaite récupérer les valeurs de FormParam pour configurer FormMain. J'y arrive, mais ayant plein de manières de faire différente, je ne sais laquelle choisir...
Pour l'instant, je fais ça :
Pour ceux qui ont la flemme de lire, voici un court résumé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public class FormParam { DialogResult result; public bool setParam(ref int x, ref int y) { this.ShowDialog(); if (this.result == DialogResult.OK) { x = Int32.Parse(textBox1.Text); y = Int32.Parse(textBox2.Text); return true; } else { return false; } } } public class FormMain { private void button_Click(object sender, EventArgs e) { FormParam fparam = new FormParam(); int x = 0, y = 0; if (fparam.setParam(ref x, ref y)) { //... Actions en fonction des paramètres } } }
- Je clique sur un bouton dans FormMain
- Cela lance FormParam.setParam, dans laquelle je passe des paramètres par référence
- Dans FormParam.setParam, je me charge d'afficher le forumlaire et de la validation des contrôles, et j'indique si les paramètres sont bons.
- Au retour de cette fonction dans FormMain, je récupère TRUE/FALSE, suivant si l'action a été validée ou au contraire annulée.
Personnellement, je n'ai pas de problèmes avec ça, mais j'ai l'impression que c'est pas trop C#-like (Note: j'ai mangé pas mal de C ces derniers temps).
Donc parmis les options qui s'offrent à moi, j'hésite entre:
- Propriété avec 'get' de défini pour les paramètres de FormParam, que je récupère une fois cette form fermée.
- Au contraire, mettre des propriétés 'get/set' dans FormMain. FormParam se lance, et se charge depuis sa fenêtre de modifier les attributs de FormMain.
- Une variante de la précédente : Toujours 'get/set' dans FormMain, sauf que c'est FormParam qui se charge des traitements, et qui va donc accéder au composants graphiques et modifier l'état de FormMain (mais je risque d'avoir besoin de ça : http://faqcsharp.developpez.com/?pag...sc#form_thread).
- On peut sûrement imaginer d'autres choses...
D'un point de vue concéption, c'est pas tellement fixé, je veux dire je suis libre de modifier l'architecture, mais aucune des solutions ci-dessus ne serait abbérante d'un point de vue conception...
Et vous de votre coté, que faites-vous quand vous souhaiter utiliser une autre fenêtre pour paramètrer la première ?
Merci d'avance pour vos réponses![]()
Partager