Tôi cần lập trình thay đổi màu đường viền của một số ô trong sự kiện CellFormatting. Màu bảng của một ô có thể thay đổi không?Làm thế nào để thay đổi màu viền của một số ô trong DataGridView?
5
A
Trả lời
-3
Không có cách nào để thay đổi kiểu viền ô riêng lẻ trừ khi chế độ xem lưới dữ liệu có nguồn gốc được tạo.
9
Bạn có thể vẽ hình chữ nhật. Trong ví dụ này, tôi đặt một thân màu đỏ trên các ô được chọn.
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 mô tả một phương pháp mà bạn có thể kế thừa từ DataGridView để ghi đè các kiểu viền mặc định: DataGridViewAdvancedBorderStyle Class
Phương pháp sơn trên là đơn giản, mặc dù.
không đúng, điều này có thể được thực hiện với DataGridView tùy chỉnh. Có một trên trang web của Microsoft: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewadvancedborderstyle.aspx –
điều này là sai, bạn chỉ có thể ghi đè phương pháp vẽ của các ô – Edmondo1984