Recuperer Les caractére d'1 Enum et l'afficher dans COMBOBOX [Résolu]

drcmomo 182 Messages postés lundi 13 mars 2006Date d'inscription 25 décembre 2009 Dernière intervention - 4 mai 2007 à 16:09 - Dernière réponse : drcmomo 182 Messages postés lundi 13 mars 2006Date d'inscription 25 décembre 2009 Dernière intervention
- 11 mai 2007 à 09:52
Bonjour tout le monde !!!!
Voila mon probléme je dois afficher dans 1 COMBOBOX La chaine caratére "Sans Nomenclature"
J'ai reussir a le faire dans une Application Controle par contre pour l'afficher dans ce merdier de COMBOBOX j'arrive pas.Mes Neurones sont en comporte SVP AIDER!!! 
[

Description(
"Sans Nomenclature")]SansNomenclature = 1,

[

Description(
"Nomenclature Simple")]NomenclatureSimple = 2,

[

Description(
"Nomenclature Paramétrée")]NomenclatureParamétrée = 3,

namespace

Outils
{

publicclassLienEnumComboBox : Attribute
{

privateArrayList ArlListe;

publicstring Text;

public LienEnumComboBox(string text)
{

Text = text;

}

publicvoid AjouterElément(refComboBox cbo, object IntElémentDeLEnum, string StrLibellé)
{

ArlListe.Add(IntElémentDeLEnum);

}

publicint RetournerLElémentDEnum(ComboBox cbo)
{

return (int)ArlListe[cbo.SelectedIndex];
}

public LienEnumComboBox()

{

ArlListe =
newArrayList();

}

publicclass CLsGlobal1
{

staticstring AffecterEnumDansCombo(Enum en)
{

Type type = en.GetType();

MemberInfo[] memInfo = type.GetMember(en.ToString());

if (memInfo != null && memInfo.Length > 0)
{

object[] attrs = memInfo[0].GetCustomAttributes(typeof(LienEnumComboBox), false);

if (attrs != null && attrs.Length > 0)

return ((LienEnumComboBox)attrs[0]).Text;
}

return en.ToString();
}

}

}

Damns mon FRM:

override

publicvoid PasserDansEtat_Création()
{

base.PasserDansEtat_Création();
LienEnumCboTypeDeComposition =

new Outils.LienEnumComboBox();

EnmTypeDeComposition cool = EnmTypeDeComposition.SansNomenclature;
CboProduitComposé.DataSource =

Enum.GetNames(typeof(EnmTypeDeComposition));
}
}//namespace

J'aimerais pourvoir faire appel a ma fonction:AffecterEnumDansCombo
J'arrive a la faire fonction dans une application CONSOLE mais j'y arrive pas avec ce fichu COMBOBOX ,

Aidez moi si vous pouvez MERCI D'AVANCE
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 4 mai 2007 à 16:15
3
Merci
Serait-il possible qu'avant de poser des questions vous fassiez une recherche ?

http://www.csharpfr.com/infomsg_Mettre%20une%20enum%20dans%20un%20combobox_885728.aspx

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de sebmafate
drcmomo 182 Messages postés lundi 13 mars 2006Date d'inscription 25 décembre 2009 Dernière intervention - 4 mai 2007 à 16:21
0
Merci
J'ai déja regarder ce code , et je fais des recherches.Si je ppose une question c'est que j'arrive pas a trouver la réponse
Comme j'ai precisé mon programme marche avec une application Console .Mon probléme se trouve dans FRM ou je n'arrive pas a faire appel a ma fonction "AffecterEnumDansCombo
"
Merci quand meme
Commenter la réponse de drcmomo
cs_cfs 2 Messages postés samedi 19 mars 2005Date d'inscription 5 mars 2008 Dernière intervention - 9 mai 2007 à 14:58
0
Merci
Bonjour,
Je ne sais pas à pour quoi vous voulez utiliser un Enum dans une combo, mais si c'est seulement pour proposer des libellés sur des constantes, voici une autre astuce :

Public

Class StatutsVisites 

   Inherits DataTable

Public
Sub
New()

   Me.Columns.Add(
"Libelle")

   Me.Columns.Add(
"Valeur", System.Type.GetType(
"System.Int32"))

   
   Dim DR
As DataRow =
Me.NewRow
   DR(
"Libelle") =
"Prévue"
   DR(
"Valeur") = 1

   Me.Rows.Add(DR)   DR =

Me.NewRow
   DR(
"Libelle") =
"Effectuée"
   DR(
"Valeur") = 2

   Me.Rows.Add(DR)   DR =

Me.NewRow
   DR(
"Libelle") =
"Refus de rendez-vous"
   DR(
"Valeur") = 3

   Me.Rows.Add(DR)

End
SubEnd

Class

dans le code, il n'y a plus qu'à écrire :

ComboBox1.DataSource =

New StatutsVisites
ComboBox1.DisplayMember =
"Libelle"
ComboBox1.ValueMember =
"Valeur"

On perd l'avantage de pouvoir déclarer une variable du type de l'énumération, mais on gagne celui de proposer des libellés avec des espaces, sans avoir besoin de passer par  un collection annexe

Désolé de répondre en VB quand les exemples au dessus sont en C#, mais j'ai pris le code là ou je l'avais utilisé
Commenter la réponse de cs_cfs
drcmomo 182 Messages postés lundi 13 mars 2006Date d'inscription 25 décembre 2009 Dernière intervention - 11 mai 2007 à 09:52
0
Merci
Bonjour,
merci pour ton aide j'avais deja trouver la solution, merci encore c'est tres sympa de ta part passe une bonne journée
Commenter la réponse de drcmomo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.