2010-05-25 7 views
2

Je fais un jeu de tic tac toe et j'essaie d'ajouter une zone de liste déroulante qui va changer l'arrière-plan des applications en fonction de ce que la personne sélectionne maintenant j'ai l'été, le printemps, l'automne, l'hiver et les images sont dans le dossier bin/debug comment puis-je faire fonctionner ça je ne sais pas par où commencer et les tutoriels sont un peu déroutants. Pourriez-vous s'il vous plaît m'aider?Combobox comment obtenir l'élément sélectionné pour afficher un thème

+0

Avec quelles parties avez-vous besoin d'aide, exactement? Modification des images, gestion de l'événement SelectedIndexChanged de la liste déroulante ou autre chose? –

+0

Je peux comprendre les images avec lesquelles j'ai besoin d'aide est la zone de liste déroulante que j'ai dans les propriétés de la zone de liste déroulante une collection "été" "hiver" comment puis-je faire quelque chose lorsqu'il est sélectionné? –

Répondre

0

Ce que vous demandez n'est pas très clair. En supposant que vous avez des fichiers bitmap avec des noms comme "spring.png" etc. dans votre dossier bin \ Debug, cela devrait fonctionner:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     comboBox1.Items.AddRange(new string[] { "Spring", "Summer", "Fall", "Winter" }); 
     comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged; 
    } 

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { 
     string folder = Application.StartupPath; 
     string theme = (string)comboBox1.Items[comboBox1.SelectedIndex]; 
     string path = System.IO.Path.Combine(folder, theme + ".png"); 
     Image newImage = new Bitmap(path); 
     if (this.BackgroundImage != null) this.BackgroundImage.Dispose(); 
     this.BackgroundImage = newImage; 
    } 
} 
+0

Works merci beaucoup pour votre temps. –

0

Il existe plusieurs façons de le faire. Ceci est probablement le plus simple:

  1. Définissez votre principale forme de BackgroundImageLayout à Stretch.
  2. Placez les contrôles 4 PictureBox sur votre formulaire et définissez leurs propriétés Visible sur false. Nommez-les pbWinter, pbSpring etc. Définissez la propriété Image de chaque en naviguant vers le fichier image pour chaque saison. Ajoutez un ComboBox à votre formulaire. Ajoutez les articles "Hiver", "Printemps", "Été" et "Automne".
  3. Dans le gestionnaire d'événements de zone de liste déroulante SelectedIndexChanged, vérifiez Text propriété avec une déclaration switch de la boîte, et mettre l'image en arrière appropriée avec le code comme ceci:

    this.BackgroundImage = pbWinter.Image; // etc. ...

Mise à jour: Voilà comment faire l'instruction de commutation:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    switch (comboBox1.Text) 
    { 
     case "Winter": 
      this.BackgroundImage = pbWinter.Image; 
      break; 
     case "Spring": 
      this.BackgroundImage = pbSpring.Image; 
      break; 
     // etc... 
    } 
} 
+0

merci pour l'aide –

Questions connexes