Bonjour,

J'ai donc un DataGridView, remplit par la table d'une base de données ACCESS.
Tout ça fonctionne très bien.
Maintenant j'aimerais personnaliser l'édition de certaines colonnes.
J'ai modifié une colonne pour que ce soit une combobox et ça marche aussi.
Par contre, j'ai modifié une colonne de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
            DataGridViewTextBoxColumn ColumnClub = new DataGridViewTextBoxColumn();
            string strClub = "Club";
 
            MaDataGridView.Columns.Remove(strClub);   // J'efface l'original
            ColumnClub.DataPropertyName = strClub;     // Nom de mon champ dans ma base
            ColumnClub.HeaderText = strClub;
            ColumnClub.Width = 120;
            MaDataGridView.Columns.Insert(0, ColumnClub);
Jusque là, rien d'extraordinaire.
Maintenant, j'aimerais utiliser la fonction AutoComplete sur cette colonne. On effet, lorsque on commence à taper un texte, on propose la liste des textes déjà saisis dans cette colonne.
J'ai donc ajouté l'evenement :
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
 
        private void MaDataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (e.Control is DataGridViewTextBoxEditingControl)
            {
                if (MaDataGridView.CurrentCell.ColumnIndex == 0)
                {
                    DataGridViewTextBoxEditingControl te = (DataGridViewTextBoxEditingControl)e.Control;
 
                    te.AutoCompleteMode = AutoCompleteMode.Suggest;
                    te.AutoCompleteSource = AutoCompleteSource.CustomSource;
 
                    for (int i = 0; i < MaDataGridView.Rows.Count; i++)
                    {
                        if (i != MaDataGridView.CurrentRow.Index)
                        {
                            string str = MaDataGridView.Rows[i].Cells[0].FormattedValue.ToString();
 
                            if (!te.AutoCompleteCustomSource.Contains(str))
                            {
                                te.AutoCompleteCustomSource.Add(str);
                            }
                        }
                    }
                }
            }
        }
Ce code marche correctement, sauf que lorsque je rentre en édition sur ce champ, la couleur du champ de saisie est noire sur noire, ce qui fait qu'on ne voit pas ce que l'on tape. Une fois le champ validé, la couleur revient bien à celle du grid et la saisie apparait bien.
Comment modifier cette couleur ?

Merci d'avance pour toutes les aides.


Ps: Je travaille en c# (je débute dans ce langage).