DataGridViewのcellの境界線を太くするには?

解決


初心者中の初心者  2013-05-01 12:30:50  No: 143458  IP: [192.*.*.*]

DataGridviewのcellの境界線を,指定したところだけ,太い線にする方法がありましたら御教示下さい。

編集 削除
魔界の仮面弁士  2013-05-06 00:36:07  No: 143459  IP: [192.*.*.*]

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

編集 削除
初心者中の初心者  2013-05-06 17:03:00  No: 143460  IP: [192.*.*.*]

御教示頂いた例題の通り実行しましたらうまくいきました。これを基に応用していきます。
  魔界の仮面弁士さんありがとうございました。

編集 削除