IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Insérer une colonne de CheckBox dans un DataGrid [FAQ]


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Bonjour,
    J'ai un DataGrid dont les deux premières colonnes sont remplies par l'utilisateur (Exemple: une institutrice qui entre les noms et prénoms de ses élèves).
    Chaque colonne supplémentaire correspond à un échantillon (présence ou absence de l'individu identifié dans les 2 premières colonnes).
    Je veux permettre à l'utilisateur d'ajouter des colonnes en fonction du nombre des échantillons qu'il effectue (le nombre de lignes reste constant), c'est pourquoi je souhaiterais associer à un bouton "Nouveau" la création d'une nouvelle colonne, dont chaque case contient une CheckBox.
    Comment puis-je implémenter cela sous VB.NET ? (Attention, je débute ! )
    D'avance merci.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 40
    Points : 1 880
    Points
    1 880
    Par défaut
    Voici un exemple qui devrait t'aider, la solution passe par l'utilisation des TablesStyles :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    // code assumes you have a DataSet named myDataSet, a table named "EastCoastSales" and a DataGrid myDataGrid 
     
    //STEP 1: Create a DataTable style object and set properties if required. 
     
         DataGridTableStyle ts1 = new DataGridTableStyle(); 
     
     
     
         //specify the table from dataset (required step) 
     
         ts1.MappingName = "EastCoastSales"; 
     
     
     
         // Set other properties (optional step) 
     
         ts1.AlternatingBackColor = Color.LightBlue; 
     
     
     
    //STEP 2: Create a string column and add it to the tablestyle 
     
         DataGridColumnStyle TextCol = new DataGridTextBoxColumn(); 
     
         TextCol.MappingName = "custName"; //from dataset table 
     
         TextCol.HeaderText = "Customer Name"; 
     
         TextCol.Width = 250; 
     
         ts1.GridColumnStyles.Add(TextCol); 
     
     
     
    //STEP 3: Create an int column style and add it to the tablestyle 
     
         //this requires setting the format for the column through its property descriptor 
     
         PropertyDescriptorCollection pdc = this.BindingContext 
     
               [myDataSet, "EastCoastSales"].GetItemProperties(); 
     
     
     
         //now created a formated column using the pdc 
     
         DataGridDigitsTextBoxColumn csIDInt = 
     
               new DataGridDigitsTextBoxColumn(pdc["CustID"], "i", true); 
     
         csIDInt.MappingName = "CustID"; 
     
         csIDInt.HeaderText = "CustID"; 
     
         csIDInt.Width = 100; 
     
         ts1.GridColumnStyles.Add(csIDInt); 
     
     
     
    //STEP 4: Add the checkbox 
     
         DataGridColumnStyle boolCol = new DataGridBoolColumn(); 
     
         boolCol.MappingName = "Current"; 
     
         boolCol.HeaderText = "Info Current"; 
     
     
     
    //uncomment this line to get a two-state checkbox 
     
         //((DataGridBoolColumn)boolCol).AllowNull = false; 
     
     
     
         boolCol.Width = 150; 
     
         ts1.GridColumnStyles.Add(boolCol); 
     
     
     
    //STEP 5: Add the tablestyle to your datagrid's tablestlye collection 
     
         myDataGrid.TableStyles.Add(ts1);
    Pour tout savoir sur .Net :
    http://dotnet.developpez.com/FAQ.NET/

    Pour les débutants en ADO .Net :
    http://dotnet.developpez.com/tutoriels/ado1/
    http://dotnet.developpez.com/tutoriels/ado2/

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Tout d'abord, merci pour ta réponse.
    J'ai trouvé comment générer des colonnes dynamiquement en créant un bouton "Ajouter une colonne" dont voici le code associé:

    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
     
        Dim i As Integer = 1
        Dim NbRel As Integer = 1
     
        Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
            AddRel()
        End Sub
     
        Private Sub AddRel()
            Dim boolCol As New DataColumn()
            boolCol.DefaultValue = False
            boolCol.DataType = Type.GetType("System.Boolean")
            boolCol.ColumnName = "Relevé " + i.ToString
            frm.NumRel.Items.Add(boolCol.ColumnName)
            TabRel.Columns.Add(boolCol)
            i = i + 1
            NbRel = i
        End Sub
    J'ai déjà essayé de passer par un TableStyle (basé sur le même exemple que le tien d'ailleurs!) mais je ne trouve pas comment générer mes colonnes de la même façon. Les manipulations sont sans doute différentes car il doit falloir à chaque fois ajouter les nouvelles colonnes au TableStyle?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insérer une colonne virtuelle compteur dans une requête
    Par Timkeeper dans le forum Langage SQL
    Réponses: 10
    Dernier message: 14/06/2015, 17h36
  2. [phpMyAdmin] comment insérer une colonne not null dans une table ?
    Par Ragnart dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 31/05/2014, 21h00
  3. [POO] coche de 2 colonnes de checkbox dans un datagrid
    Par cyrano_de_bergerac dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/06/2008, 15h30
  4. Réponses: 2
    Dernier message: 19/05/2006, 18h01
  5. insérer une colonne dans une base
    Par ludolan dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo