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
18 mars 2019 à 22:01