Private Sub LV_CUD_site_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles LV_CUD_site.ItemCheck Try ' Si on a au moins une ligne If LV_CUD_site.Items.Count > 0 Then ' On récupère le site Dim siteCode As String = LV_CUD_site.Items(e.Index).SubItems(2).Text ' Si la case est sélectionnée If e.CurrentValue = CheckState.Unchecked Then ' Déclaration de la requête SQL Dim requeteSQL As String = "SELECT devLM_ID AS [ID], devLM_IDrubrique AS [Rubrique], devLM_code AS [Code], devLM_intitule AS [Intitule], devLM_unite AS [Unité], devLM_valeurAffichee AS [Valeur], devLM_valeurCalculee AS [Valeur calculee], devLM_TVA AS [TVA]" & _ " FROM devisLigneModele" & _ " WHERE devLM_IDtrame=" & C_CUD_trame.SelectedValue & _ " ORDER BY devLM_listePosition ASC" ' Création de la nouvelle page Dim monOngletSite As New TabPage With monOngletSite .Name = siteCode .Text = siteCode End With TC_CUD_sites.TabPages.Add(monOngletSite) ' Création de la DGV Dim DGV As New DataGridView With DGV .Name = "DGV_" & siteCode .Top = 5 .Left = 5 .Width = TC_CUD_sites.TabPages.Item(0).Width - 10 .Height = TC_CUD_sites.TabPages.Item(0).Height - 10 .Anchor = AnchorStyles.Top + AnchorStyles.Bottom + AnchorStyles.Left + AnchorStyles.Right .DataSource = SQLDataVersDataSet(BDD_Devis, requeteSQL).Tables(0) .RowHeadersVisible = False If .Rows.Count > 0 Then .Rows.Item(0).Selected = False .Refresh() End With monOngletSite.Controls.Add(DGV) TC_CUD_sites.TabPages(siteCode).Select() TC_CUD_sites.Update() ' Configuration de la DGV Dim maDGV As DataGridView = monOngletSite.Controls.Item(DGV.Name) With maDGV .Name = "DGV" & siteCode .Columns.Item("ID").ReadOnly = True .Columns.Item("Rubrique").ReadOnly = True .Columns.Item("Code").ReadOnly = True .Columns.Item("Intitule").ReadOnly = True .Columns.Item("Unité").ReadOnly = True .Columns.Item("Valeur").ReadOnly = True .Columns.Item("Valeur calculee").ReadOnly = True .Columns.Item("TVA").ReadOnly = True .Columns.Item("Rubrique").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns.Item("Code").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns.Item("Intitule").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft .Columns.Item("Unité").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns.Item("Valeur").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight .Columns.Item("TVA").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns.Item("ID").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("Rubrique").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("Code").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("Intitule").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("Unité").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("Valeur").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("Valeur calculee").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("TVA").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("ID").Visible = False .Columns.Item("Valeur calculee").Visible = False .Columns.Add("quantite", "Quantité") .Columns.Add("montantHT", "Montant HT") .Columns.Item("quantite").ReadOnly = False .Columns.Item("montantHT").ReadOnly = True .Columns.Item("quantite").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns.Item("montantHT").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns.Item("quantite").SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Item("montantHT").SortMode = DataGridViewColumnSortMode.NotSortable .SelectionMode = DataGridViewSelectionMode.FullRowSelect .AllowUserToOrderColumns = False .AllowUserToAddRows = False .AllowUserToDeleteRows = False .AllowUserToResizeColumns = False .AllowUserToResizeRows = False .ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill .AutoResizeColumns() End With Else If MsgBox("Êtes-vous sur de vouloir retirer le site: " & siteCode & " ?" & Chr(10) & "Le contenu éventuellement saisi sera également supprimé!", vbExclamation + vbYesNo) = MsgBoxResult.Yes Then ' Suppression de la page With TC_CUD_sites For Each page As TabPage In .TabPages If page.Name = siteCode Then .TabPages.Remove(page) : Exit For Next End With Else e.NewValue = CheckState.Checked End If End If End If Catch ex As Exception MsgBox(ex.Message, vbCritical, "OGDEV") End Try End Sub