Ho bisogno di programmare cambiare il colore del bordo di alcune celle nell'evento CellFormatting. È possibile modificare il colore della scheda di una singola cella?Come modificare il colore del bordo di alcune celle in DataGridView?
5
A
risposta
-3
Non è possibile modificare lo stile del bordo di ogni cella a meno che non venga creata una vista griglia di dati derivati.
9
È possibile disegnare un rettangolo. In questo esempio metto un boder rosso sulle celle selezionate.
private void 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 = new Pen(Color.Red, 1))
{
Rectangle rect = e.CellBounds;
rect.Width -= 2;
rect.Height -= 2;
e.Graphics.DrawRectangle(p, rect);
}
e.Handled = true;
}
}
}
0
MSDN descrive un metodo in cui è possibile ereditare dal DataGridView per sovrascrivere gli stili di confine di default: DataGridViewAdvancedBorderStyle Class
Il metodo dipinto sopra è più semplice, però.
non vero, questo può essere fatto con un DataGridView personalizzato. Ce n'è una sul sito Microsoft: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewadvancedborderstyle.aspx –
questo è falso, puoi semplicemente sovrascrivere il metodo paint delle celle – Edmondo1984