IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Parcourir les jours du mois sélectionné sur un monthCalendar


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut Parcourir les jours du mois sélectionné sur un monthCalendar
    Bonjour tout le monde,

    Après plusieurs mois passés sur du Java je me remets au VB.Net et je dois avouer que c'est parti un peu loin

    Donc voila tout est dans le titre :

    Je voudrais afficher dans un datagridview une ligne pour chaque jour du mois sélectionné dans un monthCalendar.

    En gros :
    - 1ère ligne / 1ère case : Mardi 1er Mai
    - 2ème ligne / 1ère case : Mercredi 2 Mai
    - 3ème ligne / 1ère case : Jeudi 3 Mai
    - etc...

    Et j'ai beau faire, je tourne en rond...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Calendrier_DateChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles Calendrier.DateChanged
            DGVHoraires.Rows.Clear()
            For j As Integer = 0 To Date.DaysInMonth(Calendrier.SelectionStart.Year, Calendrier.SelectionStart.Month)
                DGVHoraires.Rows.Add()
                DGVHoraires.Rows(DGVHoraires.RowCount - 1).Cells(0).Value = 'Le jour qui va bien
            Next
    End Sub
    Merci beaucoup de votre aide

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,

    voici un code pour parcourir la sélection de date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim dateParcour As Date = MonthCalendar1.SelectionStart
            While Date.Compare(dateParcour, MonthCalendar1.SelectionEnd) < 0
                Debug.WriteLine(dateParcour.ToShortDateString)
                dateParcour = dateParcour.AddDays(1)
            End While
    Il ne reste plus qu'à l'adapter...

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Le calendrier stocke une durée (composée d'une date de fin et de début).

    Il faut en premier lieu forcer la longueur max de la durée à 1 (jours). Puis prendre la propriété représentant la date du début (ou de fin) de la propriété selectionrange du calendrier.

    Ensuite tu peux utiliser la fonction dayinmonth().

    Autrement tu peux aussi utiliser le datetimepicker. Ce dernier exposant lui bien une date! Si un jour il te faut effectuer un binding sur une variable date, le datetimepicker sera lui aussi plus indiqué.

  4. #4
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Salut

    peut etre comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub MonthCalendar1_DateSelected(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateSelected
            Dim startdate, enddate As DateTime
            Dim iter As Integer = 0
            startdate = DirectCast(sender, MonthCalendar).SelectionStart
            enddate = DirectCast(sender, MonthCalendar).SelectionEnd
            DGVHoraires.Columns.Add("", "les dates choisies")
     
            While startdate < enddate
                DGVHoraires.Rows.Add()
                DGVHoraires.Rows.Item(iter).Cells(0).Value = startdate
                iter += 1
                startdate = startdate.AddDays(1)
            End While
     
     
        End Sub

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Merci à tous pour vos réponses.

    En effet j'avais commencé à jouer avec les selectionStart et selectionEnd, cependant, il me prend seulement le jour sélectionné dans ces cas là (celui en surbrillance sur le calendar) que ce soit pour le start ou le end, or moi je voudrais récupéré le mois correspondant et donc les jours de ce mois...

    Edit :

    Finalement j'ai suivi les conseil de Sinople et j'ai utilisé un DateTimePicker, je voulais un calendarMonth parce que je trouvais ça plus "joli" sur mon IHM, mais bon on n'a pas toujours ce qu'on veut dans la vie ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Sub Calendrier_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendrier.ValueChanged
            DGVHoraires.Rows.Clear()
            Dim d As Date
            For j As Integer = 1 To Date.DaysInMonth(Calendrier.Value.Year, Calendrier.Value.Month)
                DGVHoraires.Rows.Add()
                d = New Date(Calendrier.Value.Year, Calendrier.Value.Month, j)
                DGVHoraires.Rows(DGVHoraires.RowCount - 1).Cells(0).Value = d.DayOfWeek.ToString & " " & j
            Next
        End Sub
    Encore merci pour votre aide

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Attention ça reste possible avec le calendrier ! Il faut juste ajouter une couche de bricole supplémentaire. A toi de voir le temps que tu veux investire sur la résolution de ton problème.

    P.S. Avec le contrôle calendrier, une solution intéressante serait d'afficher une ligne dans ta grille pour chaque jour du calendrier sélectionnée par exemple (La pertinance de cette idée dépend du contexte de ton application bien sur...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment compter les jours par mois entre deux dates
    Par Doo89 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/01/2008, 21h21
  2. [Dates] Afficher les jours du mois dans un formulaire
    Par Jimmy Monkey dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2007, 11h27
  3. comment creer une colonne avec les jours du mois
    Par Daniela dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2006, 11h34
  4. remplir une table avec les jours du mois
    Par david06600 dans le forum Langage
    Réponses: 6
    Dernier message: 04/08/2006, 10h29
  5. Récuperer les jours du mois en cours
    Par mindwind dans le forum Oracle
    Réponses: 22
    Dernier message: 15/12/2005, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo