none
(Visual Studio 2008) Fermer un MonthCalendar RRS feed

  • Question

  • Bonjour,

    J'utilise le contrôle MONTHCALENDAR

    Comment faire pour le fermer, si l'on ne l'utilise pas ?

    Par exemple, je l'utilise pour entrer une date. Puis je clique de nouveau sur le bouton qui lance son ouverture, mais finalement la date déjà entrée est correcte, et je n'ai pas à la changer. Le calendrier reste ouvert …

    J'ai contourné le problème avec une variable logique, et je le referme avec le même bouton qui lance l'ouverture.

    Mais c'est quand même "lourd"

    Une autre solution ?

    J'utilise aussi l'événement MouseLeave, mais il faut que l'utilisateur entre et sorte du calendrier

    Cordialement

    SC

    (Microsoft Visual Studio 2008 Version 9.0.21022.8 RTM Microsoft .NET Framework Version 3.5 SP1 - Windows 8.1 ou Windows 10) 


    Cordialement SC


    • Modifié Sauveur Consalvi dimanche 13 septembre 2015 08:58 Ajout d'une remarque
    vendredi 11 septembre 2015 21:58

Réponses

  • Bonjour, Sauveur Consalvi,

     je le referme avec le même bouton qui lance l'ouverture.

    Si vous avez l’intention de réutiliser le calendrier mensuel, il suffira de le cacher (par exemple par le bouton, mais vous pouvez vous servir également de l’événement FocusLeave) et de le réafficher lorsque vous en avez besoin. Pour cet objectif, vous pouvez modifier la propriété Visible sans variable logique. Est-ce que l’extrait de code suivant correspond à votre dessein?

    Private Sub button1_Click(sender As Object, e As EventArgs)
    	If monthCalendar1.Visible = False Then
    		monthCalendar1.Visible = True
    	Else
    		monthCalendar1.Visible = False
    	End If
    End Sub
    J'utilise aussi l'événement MouseLeave, mais il faut que l'utilisateur entre et sorte du calendrier

    Essayez d’utiliser l’événement FocusLeave qui se déclenche lorsque l’utilisateur clique sur un autre contrôle:

    Private Sub monthCalendar1_Leave(sender As Object, e As EventArgs)
    	monthCalendar1.Visible = False
    End Sub

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    mardi 15 septembre 2015 08:15
    Modérateur

Toutes les réponses

  • Bonjour, Sauveur Consalvi,

     je le referme avec le même bouton qui lance l'ouverture.

    Si vous avez l’intention de réutiliser le calendrier mensuel, il suffira de le cacher (par exemple par le bouton, mais vous pouvez vous servir également de l’événement FocusLeave) et de le réafficher lorsque vous en avez besoin. Pour cet objectif, vous pouvez modifier la propriété Visible sans variable logique. Est-ce que l’extrait de code suivant correspond à votre dessein?

    Private Sub button1_Click(sender As Object, e As EventArgs)
    	If monthCalendar1.Visible = False Then
    		monthCalendar1.Visible = True
    	Else
    		monthCalendar1.Visible = False
    	End If
    End Sub
    J'utilise aussi l'événement MouseLeave, mais il faut que l'utilisateur entre et sorte du calendrier

    Essayez d’utiliser l’événement FocusLeave qui se déclenche lorsque l’utilisateur clique sur un autre contrôle:

    Private Sub monthCalendar1_Leave(sender As Object, e As EventArgs)
    	monthCalendar1.Visible = False
    End Sub

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    mardi 15 septembre 2015 08:15
    Modérateur
  • Bonjour,

    J'ai marqué comme réponse car je pense qu'il n'y a pas d'autre solution

    L'idéal serait la fermeture du calendrier par un Click hors d'une date Je ne comprend pas pourquoi cela ne se fait pas ! 

    Votre "astuce" sans variable logique est parfaite. Je m'en veux de ne pas l'avoir trouvée. Il faut dire que j'ai tant cherché cette fermeture ...

    L'événement FocusLeave se déclenche, mais il faut que l'utilisateur entre dans le contrôle puis clique ailleurs

    Je continue donc à privilégier MouseLeave

    Merci de votre participation

    Cordialement

    SC


    Cordialement SC

    mardi 15 septembre 2015 14:10