Il y a 27 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

C# : winforms modifier l'image d'une pictureBox

 
n°62309
kaukos
Posté le 24-11-2007 à 19:03:53  profilanswer
 

Bonjour,
j'ai créé deux fenêtres form1 et form2.
Dans form1 j'ai créé un bouton qui lance la fenetre form2.
Dans form2 j'ai des boutons radio qui selectionne soit  Mr, Mme ou Mlle.
 
En fonction de la selection, je voudrais modifier l'image d'une PictureBox de form1.
 
Dans form1, ma pictureBox est définie comme suit :

Code :
  1. private void InitializeComponent()
  2.         {
  3. //declaration
  4. this.groupBoxPortrait = new System.Windows.Forms.PictureBox();
  5. ...
  6. //Définition de la PictureBox
  7. this.groupBoxPortrait.Image = global::Namespace.Properties.Resources.MrPortrait;
  8. this.groupBoxPortrait.Location = new System.Drawing.Point(6, 20);
  9. this.groupBoxPortrait.Name = "groupBoxPortrait";
  10. this.groupBoxPortrait.Size = new System.Drawing.Size(56, 74);
  11. this.groupBoxPortrait.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
  12. this.groupBoxPortrait.TabIndex = 0;
  13. this.groupBoxPortrait.TabStop = false;


...
}
 
L'objectif est de mettre a jour  

Code :
  1. this.groupBoxPortrait.Image = global::Namespace.Properties.Resources.MllePortrait;


Si le bouton radio Mlle est sélectionné
 
Est-ce possible ? si oui, comment ?
merci


Message édité par kaukos le 24-11-2007 à 21:43:07
n°62310
LostSoul
Manieur de hache
Posté le 24-11-2007 à 19:11:14  profilanswer
 

évènements ...

 

EDIT : ou si form2 est modal, une biesse propriété de form2 qui va contenir l'état du radio à la sortie, à ce moment là suffit de checher la propriété et de faire ce que tu veux


Message édité par LostSoul le 24-11-2007 à 19:12:59

---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°62311
kaukos
Posté le 24-11-2007 à 21:50:04  profilanswer
 

Oups, j'ai oublié de préciser que je débute...
je ne comprend pas très bien. c'est quoi un modal ?
Aurais tu un exemple stp ? merci

n°62312
LostSoul
Manieur de hache
Posté le 24-11-2007 à 21:56:30  profilanswer
 

Euuuuh ...  
 
genre public class form2 : Form { ... } avec dedans un public int ValeurRetour { get { return (l'état de ton choix); }}
 
tu appelles form2.ShowDialog() qui va ouvrir la fenêtre en mode modal (c'est à dire que y'a que cette fenêtre la qui est active) et donc dans la fenêtre te faut un bouton OK par exemple que tu définis comme étant DialogResult.OK dans le designer et un bouton Cancel pour ... cancel
 
après tu peux appeler comme ca en gros
 
if(form2.ShowDialog() == DialogResult.Ok) { if(form2.ValeurRetour == machin { ... } else { ... } }
 
(à la louche)


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°62313
kaukos
Posté le 24-11-2007 à 22:00:02  profilanswer
 

ah ok, je vois.
et bien je vais essayer sa demain merci bien

n°62314
LostSoul
Manieur de hache
Posté le 24-11-2007 à 22:14:55  profilanswer
 

Si tu veux les feux fenêtres en modeless (c'est à dire que tu peux revenir sur form1 pendant que form2 est ouvert) faut jouer avec les évènements.  
En gros form2 doit déclencher un évènement qui va notifier form1 que la combo a changé.
 
donc dans form2 tu fous un public event EventHandler myRadioSelectionChanged;
 
après comme c'est form1 qui lance form2 tu fais comme ca:
 
 form2 newForm = new form2();
 newForm.myRadioSelectionChanged += new EventHandler(newForm_myRadioSelectionChanged);
 
oà newForm_myRadioSelectionChanged est en fait la signature d'une fonction qui correspond à un event handler
 
void newForm_myRadioSelectionChanged(object sender, EventArgs e) {
 ... là dedans tu vas lire ValeurRetour et tu fais tes machins
}
 
 
Après, reste à coder le déclenchement de l'event dans form2 genre sur l'évènement clic sur le radio button en faisant ca dans l'code : if(myRadioSelectionChanged != null) myRadioSelectionChanged(this, new EventArgs());
 
en gros tu vas faire le raise de l'event avec cette ligne, et comme tu as registré un handler pour cet event (la ligne avec le +=) ca va déclencher l'exécution du handler (la fonction dans form1)


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°62315
kaukos
Posté le 24-11-2007 à 22:46:11  profilanswer
 

le problème c'est que je tente de modifier un truc dans InitializeComponent. Une fois initialiser, je sais pas si je peux réactualiser la fenetre

n°62316
LostSoul
Manieur de hache
Posté le 24-11-2007 à 22:48:58  profilanswer
 

pas toucher à InitializeComponent :o cay mal (après Visual Studio va perdre ses jeunes et tout foutre en l'air :p) le contenu de InitializeComponent() est autogénéré par le designer, en général pas touche.


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°62335
kaukos
Posté le 26-11-2007 à 09:04:38  profilanswer
 

ouai mais je touche justement au design ...

n°62340
kaukos
Posté le 27-11-2007 à 09:04:16  profilanswer
 

c bon ca marche merci


Aller à :
Ajouter une réponse