Datetimepicker

Résolu
Mozardyao Messages postés 34 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 11 février 2013 - 19 déc. 2012 à 10:57
 Scout - 18 mars 2019 à 22:01
Bonjour, j'ai un DataGridView et j'aimerai que quand je clique dans une cellule, qu'il y ait un DateTimePicker qui apparaise dans la cellule afin de permettre de saisir une date.Et qui disparaisse en laissant la date saisie dans la cellule.
Quelqu'un aurait une idée?
Merci de bien vouloir m'aider!!!!!!!!!!!!!!

2 réponses

Utilisateur anonyme
19 déc. 2012 à 18:59
Bonjour,

Voici un petit exemple qui montre comment ajouter un datetimepicker sur la cellule 1,1 lors d'un clic souris.
A tester dans un projet vierge.
Option Strict On
Public Class Form1
    'ajout d'un datagridview au formulaire
    Dim MonDataGrid As New DataGridView With {.Parent Me, .ColumnCount 3, .RowCount = 3}

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'abonnement à un événement click
        AddHandler MonDataGrid.MouseClick, AddressOf DataClick
    End Sub

    Private Sub DataClick(ByVal sender As Object, ByVal e As EventArgs)
        'si l'utilisateur clique sur la cellule 1,1...
        If MonDataGrid.SelectedCells(0) Is MonDataGrid.Rows(1).Cells(1) Then
            'récupération du rectangle d'affichage de la cellule
            Dim MonRectangle As Rectangle = MonDataGrid.GetCellDisplayRectangle(1, 1, True)
            'nouveau datetimepicker
            Dim DTP As New DateTimePicker
            'ajout événement au datetimepicker
            AddHandler DTP.ValueChanged, AddressOf valueChanged
            'positionnement 
            DTP.Bounds = MonRectangle
            'ajout au datagridview
            MonDataGrid.Controls.Add(DTP)
        End If
    End Sub

    Private Sub ValueChanged(ByVal sender As Object, ByVal e As EventArgs)
        'récupération datetimepicker
        Dim dtp As DateTimePicker = DirectCast(sender, DateTimePicker)
        'affichage date dans cellule
        MonDataGrid.Rows(1).Cells(1).Value = dtp.Value.ToLongDateString
        'déchargement du contrôle
        MonDataGrid.Controls.Remove(dtp)
        dtp.Dispose()
    End Sub
End Class
2
votre code est genial
0
Mozardyao Messages postés 34 Date d'inscription vendredi 1 juillet 2011 Statut Membre Dernière intervention 11 février 2013
20 déc. 2012 à 11:08
Bonjour banana32
Votre code m'a beaucoup aidé encore merci et bonne journée!!!!
0
Rejoignez-nous