Recuperer Les caractére d'1 Enum et l'afficher dans COMBOBOX

Résolu
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009 - 4 mai 2007 à 16:09
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009 - 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

4 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
4 mai 2007 à 16:15
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]
3
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009
4 mai 2007 à 16:21
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
0
cs_cfs Messages postés 2 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 5 mars 2008
9 mai 2007 à 14:58
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é
0
drcmomo Messages postés 182 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 25 décembre 2009
11 mai 2007 à 09:52
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
0
Rejoignez-nous