RunningCSharp

MS系開発者による、雑多な記事。記事は所属企業とは関係のない、個人の見解です。

VB(.net) Windows10 WinFormsのDataGridViewのカスタム

本記事では、下記の方法をまとめて記載いたします。(挙動はWindows10にて確認済の内容となります)

①DataGridViewのヘッダー背景色変更

②DataGridViewのヘッダー文字色変更

③DataGridViewのヘッダー・項目それぞれのフォント変更

④DataGridViewのヘッダー・項目それぞれの文字の寄せ方変更

変更前のコードと画面は以下の通り。

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        DataGridView1.Columns.Add("col1", "漢字1")
        DataGridView1.Columns.Add("col2", "漢字2")
        DataGridView1.Rows.Add({"漢字3", 3})
        DataGridView1.Rows.Add({"漢字4", 4})

    End Sub
End Class

f:id:ys-soniclab:20181231204739p:plain
変更前

変更用コードと変更後画面は以下の通り。

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        DataGridView1.Columns.Add("col1", "漢字1")
        DataGridView1.Columns.Add("col2", "漢字2")
        DataGridView1.Rows.Add({"漢字3", 3})
        DataGridView1.Rows.Add({"漢字4", 4})

        '下記設定を行わないと、①と②の設定が反映されない
        DataGridView1.EnableHeadersVisualStyles = False

        '①DataGridViewのヘッダー背景色変更
        DataGridView1.Columns().Item(0).HeaderCell.Style.BackColor = Color.Red
        '②DataGridViewのヘッダー文字色変更
        DataGridView1.Columns().Item(1).HeaderCell.Style.ForeColor = Color.Green

        '③DataGridViewのヘッダー・項目それぞれのフォント変更
        'ヘッダーのフォント変更
        DataGridView1.Columns().Item(0).HeaderCell.Style.Font = New Font("MS 明朝", 8)
        DataGridView1.Columns().Item(1).HeaderCell.Style.Font = New Font("Meiryo UI", 15)
        '項目のフォント変更
        DataGridView1.Columns().Item(0).DefaultCellStyle.Font = New Font("MS ゴシック", 15)
        DataGridView1.Columns().Item(1).DefaultCellStyle.Font = New Font("MS P ゴシック", 8)

        '④DataGridViewのヘッダー・項目それぞれの文字の寄せ方変更
        'ヘッダーの寄せ方変更
        DataGridView1.Columns().Item(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopLeft
        DataGridView1.Columns().Item(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomLeft

        '項目の寄せ方変更
        DataGridView1.Columns().Item(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        DataGridView1.Columns().Item(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight

        'ヘッダーの高さ変更
        '下記のプロパティ変更を行わないと、ColumnHeadersHeightが正しく反映されない
        DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
        DataGridView1.ColumnHeadersHeight = 100

    End Sub
End Class

f:id:ys-soniclab:20190103184425p:plain
変更後