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
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.).
Couleur d'arrière-plan des lignes paires de la grille (lignes 0, 2, 4, 6, etc.).
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.
Style de bordure de la grille, parmi les valeurs BorderStyle proposées.
Couleur d'arrière-plan du titre de la fenêtre de la grille, qui s'affiche juste au-dessus de la grille.
Police du titre situé au-dessus de la grille.
Couleur d'arrière-plan du titre de la fenêtre de la grille.
Police utilisée pour afficher le texte de la grille.
Couleur de la police utilisée par les données des lignes de la grille.
Couleur des lignes de la grille de données.
Style des lignes séparant les cellules de la grille, parmi les valeurs DataGridLineStyle proposées.
Couleur d'arrière-plan des en-têtes de ligne et de colonne.
Police utilisée pour les en-têtes de colonne.
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).
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.
Dans une table enfant, il s'agit de la couleur d'arrière-plan des lignes parentes.
Dans une table enfant, il s'agit de la couleur de premier plan des lignes parentes.
Détermine si les noms des tables et des colonnes s'affichent dans la ligne parente, par le biais de l'énumération DataGridParentRowsLabelStyle.
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.
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.
Largeur des en-têtes de ligne de la grille.
Lorsqu'une ligne ou une cellule est sélectionnée, il s'agit de la couleur d'arrière-plan.
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
Créez un nouveau style de table et définissez ses propriétés.
Créez un style de colonne et définissez ses propriétés.
Ajoutez le style de colonne à la collection des styles de colonne du style de table.
Ajoutez le style de table à la collection des styles de table de la grille de données.
Dans l'exemple ci-dessous, créez une instance d'un nouveau DataGridTableStyle et définissez sa propriété MappingName.
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).
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