Comment : mettre en forme le contrôle DataGrid Windows Forms

Notes

Le contrôle DataGridView remplace le contrôle DataGrid et lui ajoute des fonctionnalités ; toutefois, le contrôle DataGrid est conservé pour la compatibilité descendante et l'utilisation future si tel est votre choix. Pour plus d'informations, consultez Différences entre les contrôles DataGridView et DataGrid Windows Forms.

L'application de différentes couleurs aux parties d'un contrôle DataGrid peut faciliter la lecture et l'interprétation des informations. La couleur peut être appliquée aux lignes et aux colonnes. Les lignes et les colonnes peuvent également être masquées ou affichées, selon vos besoins.

La mise en forme du contrôle DataGrid présente trois aspects essentiels. Vous pouvez définir des propriétés pour établir un style par défaut dans lequel les données seront affichées. À partir de cette base, vous pouvez ensuite personnaliser la façon dont certaines tables sont affichées lors de l'exécution. Enfin, vous pouvez modifier les colonnes qui sont affichées dans la grille de données, ainsi que les couleurs et autres éléments de mise en forme affichés.

La première étape de la mise en forme d'une grille de données consiste à définir les propriétés de DataGrid. Le choix de la couleur et de la mise en forme constitue une base à partir de laquelle vous pouvez apporter des modifications en fonction des tables et des colonnes de données affichées.

Pour établir un style par défaut pour le contrôle DataGrid

  • Définissez les propriétés suivantes selon vos besoins :

    Propriété

    Description

    AlternatingBackColor

    La propriété BackColor définit la couleur des lignes paires de la grille. Lorsque vous affectez une couleur différente à la propriété AlternatingBackColor, cette couleur est affectée à une ligne sur deux (lignes 1, 3, 5, etc.).

    BackColor

    Couleur d'arrière-plan des lignes paires de la grille (lignes 0, 2, 4, 6, etc.).

    BackgroundColor

    Tandis que les propriétés BackColor et AlternatingBackColor déterminent la couleur des lignes de la grille, la propriété BackgroundColor détermine la couleur de la zone en dehors des lignes, laquelle est visible uniquement lorsque vous faites défiler la grille vers le bas ou lorsque celle-ci contient seulement quelques lignes.

    BorderStyle

    Style de bordure de la grille, parmi les valeurs BorderStyle proposées.

    CaptionBackColor

    Couleur d'arrière-plan du titre de la fenêtre de la grille, qui s'affiche juste au-dessus de la grille.

    CaptionFont

    Police du titre situé au-dessus de la grille.

    CaptionForeColor

    Couleur d'arrière-plan du titre de la fenêtre de la grille.

    Font

    Police utilisée pour afficher le texte de la grille.

    ForeColor

    Couleur de la police utilisée par les données des lignes de la grille.

    GridLineColor

    Couleur des lignes de la grille de données.

    GridLineStyle

    Style des lignes séparant les cellules de la grille, parmi les valeurs DataGridLineStyle proposées.

    HeaderBackColor

    Couleur d'arrière-plan des en-têtes de ligne et de colonne.

    HeaderFont

    Police utilisée pour les en-têtes de colonne.

    HeaderForeColor

    Couleur de premier plan des en-têtes de colonne de la grille, comprenant le texte de l'en-tête et les symboles plus/moins (qui permettent de développer les lignes lorsque plusieurs tables liées sont affichées).

    LinkColor

    Couleur du texte de tous les liens de la grille de données, notamment les liens vers les tables enfant, le nom des relations, etc.

    ParentRowsBackColor

    Dans une table enfant, il s'agit de la couleur d'arrière-plan des lignes parentes.

    ParentRowsForeColor

    Dans une table enfant, il s'agit de la couleur de premier plan des lignes parentes.

    ParentRowsLabelStyle

    Détermine si les noms des tables et des colonnes s'affichent dans la ligne parente, par le biais de l'énumération DataGridParentRowsLabelStyle.

    PreferredColumnWidth

    Largeur par défaut (en pixels) des colonnes de la grille. Définissez cette propriété avant de réinitialiser les propriétés DataSource et DataMember (séparément ou via la méthode SetDataBinding) ; sinon, la propriété n'aura pas d'effet.

    La propriété ne peut pas avoir une valeur inférieure à 0.

    PreferredRowHeight

    Hauteur (en pixels) des lignes de la grille. Définissez cette propriété avant de réinitialiser les propriétés DataSource et DataMember (séparément ou via la méthode SetDataBinding) ; sinon, la propriété n'aura pas d'effet.

    La propriété ne peut pas avoir une valeur inférieure à 0.

    RowHeaderWidth

    Largeur des en-têtes de ligne de la grille.

    SelectionBackColor

    Lorsqu'une ligne ou une cellule est sélectionnée, il s'agit de la couleur d'arrière-plan.

    SelectionForeColor

    Lorsqu'une ligne ou une cellule est sélectionnée, il s'agit de la couleur de premier plan.

    Notes

    Lorsque vous personnalisez les couleurs des contrôles, n'oubliez pas que vous risquez de rendre le contrôle inaccessible si la couleur est mal choisie (par exemple, rouge et vert). Utilisez les couleurs de la palette Couleurs système afin d'éviter ce problème.

    Les procédures suivantes supposent que votre formulaire comporte un contrôle DataGrid lié à une table de données. Pour plus d'informations, consultez Liaison du contrôle DataGrid Windows Forms à une source de données.

Pour définir le style de table et de colonne d'une table de données par programme

  1. Créez un nouveau style de table et définissez ses propriétés.

  2. Créez un style de colonne et définissez ses propriétés.

  3. Ajoutez le style de colonne à la collection des styles de colonne du style de table.

  4. Ajoutez le style de table à la collection des styles de table de la grille de données.

  5. Dans l'exemple ci-dessous, créez une instance d'un nouveau DataGridTableStyle et définissez sa propriété MappingName.

  6. Créez une nouvelle instance d'un style GridColumnStyle et définissez sa propriété MappingName (ainsi que d'autres propriétés de mise en forme et d'affichage).

  7. Répétez les étapes 2 à 6 pour chacun des styles de colonne que vous souhaitez créer.

    L'exemple suivant illustre la création d'un objet DataGridTextBoxColumn, car un nom doit être affiché dans la colonne. De plus, vous ajoutez le style de colonne à la collection GridColumnStylesCollection du style de table et vous ajoutez le style de table à la collection GridTableStylesCollection de la grille de données.

    Private Sub CreateAuthorFirstNameColumn()
       ' Add a GridTableStyle and set the MappingName 
       ' to the name of the DataTable.
       Dim TSAuthors As New DataGridTableStyle()
       TSAuthors.MappingName = "Authors"
    
       ' Add a GridColumnStyle and set the MappingName 
       ' to the name of a DataColumn in the DataTable. 
       ' Set the HeaderText and Width properties. 
       Dim TCFirstName As New DataGridTextBoxColumn()
       TCFirstName.MappingName = "AV_FName"
       TCFirstName.HeaderText = "First Name"
       TCFirstName.Width = 75
       TSAuthors.GridColumnStyles.Add(TCFirstName)
    
       ' Add the DataGridTableStyle instance to 
       ' the GridTableStylesCollection. 
       myDataGrid.TableStyles.Add(TSAuthors)
    End Sub 
    
    private void addCustomDataTableStyle()
    {
       // Add a GridTableStyle and set the MappingName 
       // to the name of the DataTable.
       DataGridTableStyle TSAuthors = new DataGridTableStyle();
       TSAuthors.MappingName = "Authors";
    
       // Add a GridColumnStyle and set the MappingName 
       // to the name of a DataColumn in the DataTable. 
       // Set the HeaderText and Width properties. 
       DataGridColumnStyle TCFirstName = new DataGridTextBoxColumn();
       TCFirstName.MappingName = " AV_FName";
       TCFirstName.HeaderText = "First Name";
       TCFirstName.Width = 75;
       TSAuthors.GridColumnStyles.Add(TCFirstName);
    
       // Add the DataGridTableStyle instance to 
       // the GridTableStylesCollection. 
       dataGrid1.TableStyles.Add(TSAuthors);
    }
    
    private:
       void addCustomDataTableStyle()
       {
          // Add a GridTableStyle and set the MappingName 
          // to the name of the DataTable.
          DataGridTableStyle^ TSAuthors = new DataGridTableStyle();
          TSAuthors->MappingName = "Authors";
    
          // Add a GridColumnStyle and set the MappingName 
          // to the name of a DataColumn in the DataTable. 
          // Set the HeaderText and Width properties. 
          DataGridColumnStyle^ TCFirstName = gcnew DataGridTextBoxColumn();
          TCFirstName->MappingName = "AV_FName";
          TCFirstName->HeaderText = "First Name";
          TCFirstName->Width = 75;
          TSAuthors->GridColumnStyles->Add(TCFirstName);
    
          // Add the DataGridTableStyle instance to 
          // the GridTableStylesCollection. 
          dataGrid1->TableStyles->Add(TSAuthors);
       }
    

Voir aussi

Tâches

Comment : supprimer ou masquer des colonnes dans le contrôle DataGrid Windows Forms

Référence

GridTableStylesCollection

GridColumnStylesCollection

DataGrid

Autres ressources

DataGrid, contrôle (Windows Forms)