Comment changer la couleur de la bordure de certaines cellules dans DataGridView?
J'ai besoin de programmation de changer la couleur de la bordure de certaines cellules dans le CellFormatting événement. Le conseil de la couleur d'une cellule individuelle être changé?
Vous pouvez dessiner un rectangle. Dans cet exemple j'ai mis un rouge boder sur les cellules sélectionnées.
privatevoid dataGridView_CellPainting(object sender,DataGridViewCellPaintingEventArgs e){if(e.RowIndex>=0&& e.ColumnIndex>=0){if(dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected==true){
e.Paint(e.CellBounds,DataGridViewPaintParts.All&~DataGridViewPaintParts.Border);using(Pen p =newPen(Color.Red,1)){Rectangle rect = e.CellBounds;
rect.Width-=2;
rect.Height-=2;
e.Graphics.DrawRectangle(p, rect);}
e.Handled=true;}}}
Cet exemple ne fonctionne que si la cellule est sélectionnée. Que faire si j'ai besoin de créer plusieurs rectangles? Vous pouvez simplement changer le conditionnel: selected == true Je viens d'essayer, mais ne fonctionne pas. fonctionne comme un charme Comment appliquer le même effet à RowHeightChanged et ColumnWidthChanged événements, par exemple?
MSDN décrit une méthode où vous pouvez hériter de la DataGridView pour remplacer la valeur par défaut styles de bordure: DataGridViewAdvancedBorderStyle Classe
La peinture de la méthode ci-dessus est plus simple, si.
Vous pouvez dessiner un rectangle. Dans cet exemple j'ai mis un rouge boder sur les cellules sélectionnées.
Vous pouvez simplement changer le conditionnel: selected == true
Je viens d'essayer, mais ne fonctionne pas.
fonctionne comme un charme
Comment appliquer le même effet à RowHeightChanged et ColumnWidthChanged événements, par exemple?
OriginalL'auteur Alejandro del Río
MSDN décrit une méthode où vous pouvez hériter de la DataGridView pour remplacer la valeur par défaut styles de bordure: DataGridViewAdvancedBorderStyle Classe
La peinture de la méthode ci-dessus est plus simple, si.
OriginalL'auteur SSS