2012-12-07 35 views

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.

+5

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 –

+3

điều này là sai, bạn chỉ có thể ghi đè phương pháp vẽ của các ô – Edmondo1984

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

ví dụ chỉ hoạt động nếu ô được chọn. Nếu tôi cần tạo một số hình chữ nhật thì sao? – Doro

+0

@doro Bạn chỉ có thể thay đổi điều kiện: đã chọn == true –

+0

Tôi vừa thử nhưng không hoạt động. – Doro

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ù.