2012-12-07 15 views

Odpowiedz

-3

Nie ma możliwości zmiany indywidualnego stylu obramowania komórki, chyba że zostanie utworzony widok pochodnej siatki danych.

+5

Nieprawda, można to zrobić za pomocą niestandardowego DataGridView. Jest jeden na stronie Microsoft: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewadvancedborderstyle.aspx –

+3

to jest fałsz, można po prostu zastąpić metodę malowania komórek – Edmondo1984

9

Możesz narysować prostokąt. W tym przykładzie umieściłem czerwony znacznik na wybranych komórkach.

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

przykład działa tylko wtedy, gdy zaznaczona jest komórka. Co zrobić, jeśli muszę utworzyć kilka prostokątów? – Doro

+0

@doro Możesz po prostu zmienić warunkowe: wybrane == true –

+0

Po prostu próbowałem, ale nie działa. – Doro

Powiązane problemy