Bonjour à vous,
Besoin d'aide ou d'une piste pour un bout de code...
J'ai télécharger cette application (Afficher le contenu d'un fichier texte dans un DatagridView et choisir les colonnes à afficher)
Au niveau du formulaire (Colonnes.vb) je souhaiterai ajouter un message pour me dire le nombre de colonne choisi par l'utilisateur.
J'ai ajouté sur le Click du bouton1 un msgbox....en fin du code.
J'obtiens un résultat qui n'est pas cohérent avec la valeur réelle...d'autant que j'ai mis UneRangée.Item("Visible") = False ....dans le code de :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim UnNuméro As Integer = LeDset.Tables.Count - 1 Dim NomTable As String = String.Concat("Table_", UnNuméro.ToString) Dim UneNouvelleRangée As DataRow = Nothing 'Faire la liste des colonnes qui doivent être affichées. ListeColonnesàGarder.Clear() For Each rangée As DataRow In TableColonnes.Rows If rangée.Item("Visible") = True Then Try ListeColonnesàGarder.Add(rangée.Item("Nom")) Catch ex As Exception End Try End If Next Select Case My.Settings.bouton Case "affichage" 'On affiche les colonnes 'sans extraire les colonnes 'choisies dans une npouvelle table TraiteLesColonnes() Me.DataGridView1.DataSource = TableColonnes Case "table" 'Les colonnes choisies seront extraites 'dans une nouvelle table Dim LaNouvelleTable As DataTable = My.Forms.Form1.DSet.Tables.Add(NomTable) For Each UneColonne As String In ListeColonnesàGarder LaNouvelleTable.Columns.Add(UneColonne) Next For Each UneRangée As DataRow In TableInitiale.Rows UneNouvelleRangée = LaNouvelleTable.Rows.Add For Each UneColonne As String In ListeColonnesàGarder UneNouvelleRangée.Item(UneColonne) = UneRangée.Item(UneColonne) Next Next My.Forms.Form1.AfficheTable(LaNouvelleTable) End Select MsgBox(ListeColonnesàGarder.Count) End Sub
Private Sub Colonnes_Load(sender As Object, e As EventArgs) Handles Me.Load
Comme ça les cases sont décochées....et je souhaiterai qu'a chaque click le mesgbox me dise 1 et puis 2 et puis 3.....humm ou totalise le nombre total....
Je n'ai visiblement pas beaucoup de jugeote, car ça fait dix plombes que je cherche.....
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
17
18
19
20
21
22
23
24 Private Sub Colonnes_Load(sender As Object, e As EventArgs) Handles Me.Load 'Affiche une liste des noms de champs (colonnes) 'dans un second DataGridView 'La seconde colonne permet de choisir 'quelles colonnes resteront, ou seront, affichées Me.RadioButton1.Checked = True Dim UneRangée As DataRow = Nothing TableColonnes = My.Forms.Form1.DSet.Tables("Colonnes") If Not IsNothing(TableColonnes) = Nothing Then ' Catch ex As Exception TableColonnes = My.Forms.Form1.DSet.Tables.Add("Colonnes") With TableColonnes .Columns.Add("Nom", GetType(String)) .Columns.Add("Visible", GetType(Boolean)) For Each UneColonne As DataColumn In TableInitiale.Columns UneRangée = .Rows.Add UneRangée.Item("Nom") = UneColonne.ColumnName UneRangée.Item("Visible") = False 'ICI J AI REMPLACE PAR FALSE Next End With End If Me.DataGridView1.DataSource = TableColonnes End Sub
Merci de votre aide...
Partager