[VB .NET] DataGrid et Checkboxes

DataGrid et Checkboxes [VB .NET] - VB/VBA/VBS - Programmation

Marsh Posté le 10-05-2005 à 15:51:32    

J'ai de nouveau un petit souci avec les Datagrid...
J'essaie d'avoir trois colonnes contenant des checkboxes, juste pas de soucis...
J'ai regardé un exemple sur le site de microsoft... et j'ai codé une solution qui est sensée marcher...  
Comme vous vous en doutez ca marche pas... Mais j'ai pas d'erreur lors de la construction du Datagrid...  
 
Mais j'ai une NullReferenceException sur J.ShowDialog(). :??: Du coup, j'ai passé mon code au crible et je trouve pas...  
 
Merci d'avance pour l'aide... Si quelqu'un a une idée...

Reply

Marsh Posté le 10-05-2005 à 15:51:32   

Reply

Marsh Posté le 10-05-2005 à 15:53:20    

Ce serait plus simple si tu donnais le bout de code qui lance le nullmachinexception :)

Reply

Marsh Posté le 10-05-2005 à 16:11:53    

Ben j'osais pas parce qu'il est super long ... Enfin je vais essayer de condenser
 
 

Code :
  1. Public Sub New()
  2.         MyBase.New()
  3.         Try
  4.             'Cet appel est requis par le Concepteur Windows Form.
  5.             InitializeComponent()
  6.             'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
  7.             AutreTable = New DataTable("SurDossiers" )
  8.             AutreTable.Columns.Add(New DataColumn("Dossier" ))
  9.             AutreTable.Columns.Add(New DataColumn("Nom" ))
  10.             AutreTable.Columns.Add(New DataColumn("Prenom" ))
  11.             AutreTable.Columns.Add(New DataColumn("Admis", GetType(Boolean)))
  12.             AutreTable.Columns.Add(New DataColumn("Liste", GetType(Boolean)))
  13.             AutreTable.Columns.Add(New DataColumn("Refuse", GetType(Boolean)))
  14.             Dim ts As New DataGridTableStyle
  15.             ts.MappingName = "SurDossiers"
  16.             Dim AutreSet As DataSet = New DataSet("myDataSet" )
  17.             AutreSet.Tables.Add(AutreTable)
  18.             Me.GridNote.SetDataBinding(AutreSet, "SurDossiers" )
  19.             AddData()
  20.             Dim dgtbc As DataGridTextBoxColumn = New DataGridTextBoxColumn
  21.             dgtbc.MappingName = "Dossier"
  22.             dgtbc.HeaderText = "Dossier"
  23.             dgtbc.Width = 70
  24.             ts.GridColumnStyles.Add(dgtbc)
  25.             dgtbc = New DataGridTextBoxColumn
  26.             dgtbc.MappingName = "Nom"
  27.             dgtbc.HeaderText = "Nom"
  28.             dgtbc.Width = 150
  29.             ts.GridColumnStyles.Add(dgtbc)
  30.             dgtbc = New DataGridTextBoxColumn
  31.             dgtbc.MappingName = "Prenom"
  32.             dgtbc.HeaderText = "Prenom"
  33.             dgtbc.Width = 150
  34.             ts.GridColumnStyles.Add(dgtbc)
  35.             Dim db As DataGridBoolColumnInherit = New DataGridBoolColumnInherit
  36.             db.HeaderText = "Admis"
  37.             db.TrueValue = "Admis"
  38.             db.Width = 70
  39.             db.MappingName = "Admis"
  40.             ts.GridColumnStyles.Add(db)
  41.             db = New DataGridBoolColumnInherit
  42.             db.HeaderText = "Liste"
  43.             db.TrueValue = "Liste"
  44.             db.Width = 70
  45.             db.MappingName = "Liste"
  46.             ts.GridColumnStyles.Add(db)
  47.             db = New DataGridBoolColumnInherit
  48.             db.HeaderText = "Refuse"
  49.             db.TrueValue = "Refuse"
  50.             db.Width = 70
  51.             db.MappingName = "Refuse"
  52.             ts.GridColumnStyles.Add(db)
  53.             ts.AllowSorting = False
  54.             ts.AlternatingBackColor = Color.AntiqueWhite
  55.             ts.BackColor = Color.White
  56.             ts.ForeColor = Color.Black
  57.             ts.GridLineColor = Color.Gainsboro
  58.             ts.HeaderBackColor = Color.Gainsboro
  59.             ts.SelectionBackColor = Color.Lavender
  60.             ts.ForeColor = Color.Black
  61.             Me.GridNote.TableStyles.Add(ts)
  62.         Catch exc As Exception
  63.             Console.WriteLine(exc.ToString)
  64.         End Try
  65.     End Sub
  66.  
  67.     Private Sub AddData()
  68.         Dim dRow As DataRow
  69.         Dim Table As DataTable
  70.         Dim RowNumber As Integer
  71.         Table = Connexion.ConnexionSQL("SELECT Candidats.Dossier, Candidats.Nom, Candidats.Prenom " & _
  72.                                        " FROM Candidats, SurDossiers " & _
  73.                                        " WHERE SurDossiers.Dossier = Candidats.Dossier " & _
  74.                                        " AND (SurDossiers.Valide = 'Validé')" & _
  75.                                        " ORDER BY Nom,Prenom", "SurDossiers" )
  76.         While RowNumber < Table.Rows.Count
  77.             dRow = AutreTable.NewRow()
  78.             With Table.Rows(RowNumber)
  79.                 dRow("Dossier" ) = .Item("Dossier" )
  80.                 dRow("Nom" ) = .Item("Nom" )
  81.                 dRow("Prenom" ) = .Item("Prenom" )
  82.                 dRow("Admis" ) = 0
  83.                 dRow("Liste" ) = 0
  84.                 dRow("Refuse" ) = 0
  85.                 AutreTable.Rows.Add(dRow)
  86.             End With
  87.             RowNumber += 1
  88.         End While
  89.         AutreTable.AcceptChanges()
  90.     End Sub


 
Voilà ca ressemble a ca ma construction du Datagrid... Mais j'ai pas d'erreur la-dessus bien ca vienne de là...
Comme je l'ai dit j'ai une erreur sur le ShowDialog... Mais quand je mets en commentaires tout ce qui concerne les 3 colonnes checkbox tout va bien...  :pt1cable:


Message édité par Arwenalia le 10-05-2005 à 16:13:18
Reply

Marsh Posté le 10-05-2005 à 17:10:06    

Après une journée, j'ai trouvé d'ou ça vient... En gros il me faut pas que le Datagrid soit ajouté dans le mode Design, il ne faut le gérer que par la programmation.. Voilà, j'ai quelques soucis de présentation maintenant mais bon ca devrait aller...
 
Ben non en fait ca vient juste du fait de ça
 
Dim ts As New DataGridTableStyle  
ts.MappingName = "SurDossiers" <- J'utilise le meme nom que pour le dataTable et il aime pas... Du coup, je peux pas mettre bien mes colonnes a la bonne taille... Rrrrrrrrrr Le truc c que dans l'exemple ca marche bien... :??:  


Message édité par Arwenalia le 10-05-2005 à 17:25:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed