2014-02-05 21 views
0

細胞邊界我有一個datagridview這是一個例子:周圍畫中的datagridview

enter image description here

我想提請周圍的黃色矩形,我有細胞指標,有人可以幫我嗎?

我會很感激

+0

謝謝你的投票 –

+0

你到目前爲止嘗試過什麼? – equisde

+0

DataGridViewCell類中有一個名爲AdjustCellBorderStyle()的方法。試試看,它可能對你有幫助 –

回答

2

你做的是設置Cell的Style.BackColor屬性:

For i As Integer = 1 To 3 
    dgv.Rows(2).Cells(i).Style.BackColor = Color.Yellow 
Next 

的一種方式,以繞過細胞的矩形是使用CellPainting事件,看看是否它是黃色或不是,然後測試相鄰小區,以確定是否要繪製邊界線:

Private Sub dgv_CellPainting(sender As Object, _ 
          e As DataGridViewCellPaintingEventArgs) _ 
          Handles dgv.CellPainting 

    If (e.CellStyle.BackColor.ToArgb = Color.Yellow.ToArgb) Then 
    e.Graphics.FillRectangle(Brushes.Yellow, e.CellBounds) 
    If (e.ColumnIndex = 0 OrElse _ 
     dgv.Rows(e.RowIndex).Cells(e.ColumnIndex - 1).Style.BackColor.ToArgb <> Color.Yellow.ToArgb) Then 
     e.Graphics.DrawLine(Pens.Black, _ 
          e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Left, e.CellBounds.Bottom) 
    End If 
    e.Graphics.DrawLine(Pens.Black, _ 
         e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Right, e.CellBounds.Top) 
    e.Graphics.DrawLine(Pens.Black, _ 
         e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right, e.CellBounds.Bottom - 1) 
    If (e.ColumnIndex = dgv.Rows.Count - 1 OrElse _ 
     dgv.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Style.BackColor.ToArgb <> Color.Yellow.ToArgb) Then 
     e.Graphics.DrawLine(Pens.Black, _ 
          e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom) 
    End If 
    e.Handled = True 
    End If 
End Sub 

結果:

enter image description here

+0

謝謝你的幫助,但是我這樣做,我需要畫一個rectagle,畫一條線,或者是一個邊框實心的黃色邊框 –

+0

@SilviaParfeni更新回答。 – LarsTech

+0

非常感謝您的幫助,這對我有幫助 –