Bonjour à tous,
Le titre est pas super explicite mais voilà je rencontre des difficultés pour récupérer dans une classe des valeurs de controls contenu dans un windows Form.
Je m'explique par un exemple :
J'ai un Windows Form Form.cs qui contient une PictureBox dans laquelle je souhaite afficher des images.
Donc pour le moment, j'ai mis l'ensemble de mon code dans Form.cs avec notamment ces méthodes :
J'ai également utilisé des méthodes pour visualiser les images suivantes ou précédentes.
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 private void BtnViewer_Click ( object sender, EventArgs e ) { GetBitmap (); } private void GetBitmap () { string PathFolder = @"E:\Temp"; if ( Directory.GetFiles ( PathFolder ).Length > 1 ) { string[] RawImg = null; RawImg = Directory.GetFiles ( PathFolder, "*.png" ); FolderFile = new string[RawImg.Length]; Array.Copy ( RawImg, 0, FolderFile, 0, RawImg.Length ); int Selected = 0; int Begin = 0; int End = FolderFile.Length; ShowImage ( FolderFile[Selected] ); } } private void ShowImage ( string Path ) { Image ImgTemp = Image.FromFile ( Path ); this.PictureBoxWorkArea.Width = ImgTemp.Width; this.PictureBoxWorkArea.Height = ImgTemp.Height; this.PictureBoxWorkArea.Image = ImgTemp; }
Jusque là tout fonctionne très bien.
Maintenant, pour alléger le Form.cs j'aimerai créer une nouvelle classe, Pictures.cs, pour y ajouter les méthodes GetBitmap et ShowImage pour ensuite y faire appel dans le Form.cs avec quelquechose comme :
Mon problème c'est que je n'arrive pas à récupérer dans Pictures.cs les PictureBoxWorkArea.Width et autres qui sont issus du Form.cs et que j'utilise dans la méthode ShowImage().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void BtnViewer_Click ( object sender, EventArgs e ) { Pictures.GetBitmap (); }
En espérant que mon explication ne soit pas trop foireuse, pourriez-vous me donner quelques pistes car là je ne vois pas du tout comment faire
J'ai regardé du côté des constructeurs et même du côté des threads mais je suis bien larguée et je ne voudrais pas partir dans une impasse
Merci d'avance pour votre aide
(J'utilise VS 2005)
Partager