VB.Net Année dans un Combobox

cs_MagDix Messages postés 532 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 3 sept. 2009 à 02:19
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 - 3 sept. 2009 à 04:23
Bonjour à tous...
Je cherche et je cherche mais je ne trouve pas et je crois avoir déjà vu cela...

Est-il possible dans un combobox de faire afficher dfes années (par exemple de 1960 à l'année courant) en le triant en ordre descroissant... ??? Je ne veux pas entrée dans la collection chacunne des année une par une.

Bref j'aimerais savoir si c'est possible de faire un truc du genre en quelque clic... ??? dans les propriétées du combobox... ??

merci de votre aide
A voir également:

2 réponses

MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
3 sept. 2009 à 03:20
une boucle de repetition.

        ComboBox1.Items.Clear()
        For i = System.DateTime.Now.Year To 1960 Step -1
            ComboBox1.Items.Add(i.ToString)
        Next
        ComboBox1.SelectedIndex = 0
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
3 sept. 2009 à 04:23
Il y à différentes solutions comme par exemple remplir la liste dans le code
au moment de l'execution, comme te le propose MiharbiDoNo par exemple.

Je te propose celle-ci:

Ajoute une classe à ton application et nomme le fichier "ComboYears.vb" par exemple

copie le code ci-dessous à l'intérieur de la classe
Public Class ComboYears
Inherits ComboBox

Private pAnneeDebut As Integer = 1960
Private pAnneeFin		As Integer = System.DateTime.Now.Year()
Private pRemplir		As Boolean = True

<System.ComponentModel.Category("Remplissage Auto"), System.ComponentModel.Description("Année de début")> _
Public Property Debut() As Integer
Get
Return Me.pAnneeDebut
End Get
Set(ByVal value As Integer)
Me.pAnneeDebut = If(value > Me.pAnneeFin, Me.pAnneeFin, value)
If Not Me.DesignMode Then Me.FillList()
End Set
End Property

<System.ComponentModel.Category("Remplissage Auto"), System.ComponentModel.Description("Année de fin")> _
Public Property Fin() As Integer
Get
Return Me.pAnneeFin
End Get
Set(ByVal value As Integer)
Me.pAnneeFin = If(value < Me.pAnneeDebut, Me.pAnneeDebut, value)
If Not Me.DesignMode Then Me.FillList()
End Set
End Property

<System.ComponentModel.Category("Remplissage Auto"), System.ComponentModel.Description("Autorise ou non le remplissage automatique")> _
Public Property Remplir() As Boolean
Get
Return Me.pRemplir
End Get
Set(ByVal value As Boolean)
Me.pRemplir = value
If Not Me.DesignMode Then Me.FillList()
End Set
End Property

Private Sub FillList()
Me.Items.Clear()
If Me.pRemplir Then
For i As Integer = Me.pAnneeFin To Me.pAnneeDebut Step -1
Me.Items.Add(i)
Next i
End If
End Sub
End Class


Génère la solution et tu peux utiliser un nouvel objet "ComboYears" en le sélectionnant dans le
volet boite à outils.

Tu obtient un objet avec 3 nouvelles propriétées:



- Debut qui défini la date de début
- Fin qui défini la date de fin
- Remplir qui autorise ou non le remplissage en automatique

A+
0
Rejoignez-nous