DataGridviewのcellの境界線を,指定したところだけ,太い線にする方法がありましたら御教示下さい。
Public Class Form1
Private WithEvents dgv As DataGridView
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
dgv = New DataGridView()
dgv.Dock = DockStyle.Fill
dgv.AllowUserToAddRows = False
dgv.ColumnCount = 5
dgv.RowCount = 10
dgv.Columns(3).DividerWidth = 3
dgv.Rows(3).DividerHeight = 4
Controls.Add(dgv)
dgv(1, 2).Value = "Top指定"
dgv(3, 1).Value = "Bottom指定"
dgv(2, 5).Value = "All指定"
End Sub
Private Sub dgv_CellPainting(sender As Object, e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgv.CellPainting
If e.RowIndex = -1 OrElse e.ColumnIndex = -1 Then
Return
End If
Select Case e.ColumnIndex
Case 1
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None
If e.RowIndex = 2 Then
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.Single
End If
Case 2
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.Single
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None
Case 3
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None
If e.RowIndex = 1 Then
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Single
End If
End Select
If e.RowIndex = 4 AndAlso e.ColumnIndex = 2 Then
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Single
ElseIf e.RowIndex = 5 Then
If e.ColumnIndex = 1 Then
e.AdvancedBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Single
ElseIf e.ColumnIndex = 2 Then
e.AdvancedBorderStyle.All = DataGridViewAdvancedCellBorderStyle.Single
ElseIf e.ColumnIndex = 3 Then
e.AdvancedBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.Single
End If
ElseIf e.RowIndex = 6 AndAlso e.ColumnIndex = 3 Then
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.Single
End If
If e.RowIndex = 6 Then
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Single
ElseIf e.RowIndex = 7 Then
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.Inset
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Outset
ElseIf e.RowIndex = 8 Then
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.Single
End If
End Sub
End Class
御教示頂いた例題の通り実行しましたらうまくいきました。これを基に応用していきます。
魔界の仮面弁士さんありがとうございました。
ツイート | ![]() |