Meilleur auteur de réponses
Utilisation des combobox...

Question
-
Je recommence un nouveau sujet pour cette question, afin d'éviter d'avoir un post trop long.
Je suis toujours sur le développement d'un programme qui calcul les paires de coordonnées des quatre angles d'une fenêtre.
Premier post
Merci à Radric pour son aide et ses conseils.
La partie du programme qui calcul les paires de coordonnées selon des dimension personnalisée, fonctionne à merveille.
Par contre, je bute sur la partie qui calcul selon un format défini (A4, A3, etc...)
Voici ce que j'aimerais :
J'ai deux combobox, une pour le choix du format et une pour le choix de l'orientation de la feuille (portrait, paysage). J'ai uniquement renseigné l'attribut "Collection" de ces deux combobox en y introduisant la liste des formats et orientations. Déjà là, y a-t-il un paramètre à renseigner pour que tout fonctionne bien???
J'ai également, deux textbox pour introduire les coordonnées du centre de mon format.
Je vais tout simplifier pour expliquer mes besoins. Je pars du principe que je calcul une fenêtre A4 en portrait.
J'aimerai savoir comment faire pour que le programme s'informe de l'orientation de ma feuille et qu'en fonction de ça il assigne la bonne valeur au variable "Largeur" et "Hauteur".
Orientation = Portrait;
Format = A4 => Largeur = 210, Hauteur = 300
Orientation = Paysage;
Format = A4 => Largeur = 300, Hauteur = 210
etc....
J'ai déjà codé une méthode de calcul par quadrant mathématique, qui fonctionne bien avec la première partie de mon programme. En voici une :
Code Snippetprivate Coordonnees CalculCoordQuad1(Coordonnees centre, decimal Largeur, decimal Hauteur)
{
Coordonnees Coord;Coord.Y = centre.Y - (Largeur / 2);
Coord.X = centre.X + (Hauteur / 2);return Coord;}
Le but étant de les réutiliser telquelles.
Merci d'avance pour votre aide.
Réponses
-
Bonjour Jérôme,
Je vous ai écris quelques lignes de codes pour vous montrer ce qu'il est possible de faire en c# en essayant d'utiliser quelques notions qui vous aideront pour la suite de votre projet.
Par exemple nous pouvons créer une classe Feuille et deux énumérations (Format et Orientation) de la manière suivante :
Nous allons par la même occasion "overrider" la méthode ToString() pour que nous puissions afficher nos objets dans une combobox
Code Snippetpublic enum Orientation
{
Portrait = 1,
Paysage
}
public enum Format{
A3 = 1,
A4
}
public class Feuille{
{
}
private int _Largeur; public int Largeur{
}
private int _Hauteur; public int Hauteur{
}
private Orientation _Orientation; public Orientation Orientation{
}
//Nous "overridons" la méthode ToString pour l'affichage de nos objets
//de type feuille dans la combobox
public override string ToString(){
}
}
Maintenant, nous allons lier une liste d'objets de type Feuille à notre combobox.
Pour commencer, nous allons créer notre collection de Feuille :
Code SnippetList
<Feuille> Feuilles = new List<Feuille>();Feuille f1 = new Feuille();
f1.Orientation = Orientation.Paysage;
f1.Format = Format.A4;
f1.Largeur = 300;
f1.Hauteur = 210;
Feuilles.Add(f1);
Feuille f2 = new Feuille();
f2.Orientation = Orientation.Portrait;
f2.Format = Format.A4;
f2.Largeur = 210;
f2.Hauteur = 300;
Feuilles.Add(f2);
Noté que nous aurions pu utiliser le constructeur de feuille pour initialiser nos objets
Nous allons parcourir notre collection de feuille et remplir notre combobox :
Code Snippetforeach (Feuille f in Feuilles)
{
comboBox1.Items.Add(f);
}
Si nous observons le contenu de notre combobox nous pouvons remarquer les 2 éléments suivants :
A4 Paysage
A4 Portrait
Lorsque nous sélectionnons l'un de ces éléments nous voulons afficher la largeur.
Code Snippetprivate void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
Dans notre exemple nous avons décidé de récupérer la largeur, mais l'ensemble des propriétés de notre objet de type feuille selectionné est disponible. Ainsi vous pouvez passer ces différentes propriétés en argument de vos fonctions.
Bonne continuation,
Amicalement,
-
Toutes les réponses
-
Bonjour Jérôme,
Je vous ai écris quelques lignes de codes pour vous montrer ce qu'il est possible de faire en c# en essayant d'utiliser quelques notions qui vous aideront pour la suite de votre projet.
Par exemple nous pouvons créer une classe Feuille et deux énumérations (Format et Orientation) de la manière suivante :
Nous allons par la même occasion "overrider" la méthode ToString() pour que nous puissions afficher nos objets dans une combobox
Code Snippetpublic enum Orientation
{
Portrait = 1,
Paysage
}
public enum Format{
A3 = 1,
A4
}
public class Feuille{
{
}
private int _Largeur; public int Largeur{
}
private int _Hauteur; public int Hauteur{
}
private Orientation _Orientation; public Orientation Orientation{
}
//Nous "overridons" la méthode ToString pour l'affichage de nos objets
//de type feuille dans la combobox
public override string ToString(){
}
}
Maintenant, nous allons lier une liste d'objets de type Feuille à notre combobox.
Pour commencer, nous allons créer notre collection de Feuille :
Code SnippetList
<Feuille> Feuilles = new List<Feuille>();Feuille f1 = new Feuille();
f1.Orientation = Orientation.Paysage;
f1.Format = Format.A4;
f1.Largeur = 300;
f1.Hauteur = 210;
Feuilles.Add(f1);
Feuille f2 = new Feuille();
f2.Orientation = Orientation.Portrait;
f2.Format = Format.A4;
f2.Largeur = 210;
f2.Hauteur = 300;
Feuilles.Add(f2);
Noté que nous aurions pu utiliser le constructeur de feuille pour initialiser nos objets
Nous allons parcourir notre collection de feuille et remplir notre combobox :
Code Snippetforeach (Feuille f in Feuilles)
{
comboBox1.Items.Add(f);
}
Si nous observons le contenu de notre combobox nous pouvons remarquer les 2 éléments suivants :
A4 Paysage
A4 Portrait
Lorsque nous sélectionnons l'un de ces éléments nous voulons afficher la largeur.
Code Snippetprivate void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
Dans notre exemple nous avons décidé de récupérer la largeur, mais l'ensemble des propriétés de notre objet de type feuille selectionné est disponible. Ainsi vous pouvez passer ces différentes propriétés en argument de vos fonctions.
Bonne continuation,
Amicalement,
-
Tout d'abord, désolé de n'est pas venu plutôt pour répondre. Petite pause estivale oblige ^^
En tous cas merci beaucoup pour vos explications.
Par contre, je trouve pas où définirList<Feuille> Feuilles = new List<Feuille>(); .... etc
J'avoue que je suis tout débutant que je métrise ni C#, ni visual studio 2005
D'ailleurs est-il utile de passer à la version 2008???
D'avance merci ^^
-
Jérôme Clerc A écrit:
Par contre, je trouve pas où définirList<Feuille> Feuilles = new List<Feuille>(); .... etc
Cela devrait être définit au moment de remplir le combobox, soit au chargement du formulaire
Jérôme Clerc A écrit: J'avoue que je suis tout débutant que je métrise ni C#, ni visual studio 2005
On est tous débutants un jour ou l'autre
-
-
-