DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VB2008で、DataGridView の高さを調整する方法

環境/言語:[VB2008/.NET Framework 3.5]
分類:[.NET]

お世話になります。

現在、DataGridView の行の高さを調整しようとしています。
内容としましては、Excel でCtrl ボタンを押しながらマウスホイールボタン
を動かしたときの動きを実現させようとしています。

現状、サイズを小さくした場合に、ある高さまでいくとそこから変化せず、
それ以上高さを小さくすることができない状況です。

以下の内容を変えた場合の確認は行いました。
・RowTemplate.Height の値を小さい値に設定
・RowTemplate.MinimumHeight の値を小さい値に設定

また、DataGridView のRowHeightInfoNeeded イベントで設定できるか試しましたが、
イベントを発生させることができていません。
Private Sub dgv_RowHeightInfoNeeded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowHeightInfoNeededEventArgs) Handles dgv.RowHeightInfoNeeded
e.Height = 10 'ここで高さを設定
End Sub

他にもいろいろなサイト等で調べましたが、実現方法が分からない状況です。

他に設定する内容があるのか、他の方法で実現できる方法があるのか、
どなたかお分かりになる方がいましたら、ご教授いただけますでしょうか?
お世話になります。

やはり実現は無理でしょうか?
もし何かお分かりになる方がいましたら、ご教授頂けると幸いです。
Private Sub dgv_MouseWheel(ByVal sender As Object, _
                               ByVal e As System.Windows.Forms.MouseEventArgs) _
                               Handles dgv.MouseWheel

        '新しい高さ
        Dim x As Integer = 0

        '表示されているRowが無い場合
        If dgv.RowCount = 0 Then
            'ここで処理終了
            Exit Sub
        End If

        'ホイールの向きで増減値を決定
        If e.Delta > 0 Then
            x = 5
        Else
            x = -5
        End If

        x += dgv.Rows(0).Height

        '表示中の全Rowに対して高さを指定
        For i As Integer = 0 To dgv.RowCount - 1

            With dgv.Rows(i)
                dgv.Rows(i).Height = x
            End With

        Next i

        'これが無いと、ソート実行時に高さが戻ってしまう
        dgv.RowTemplate.Height = x

    End Sub

DOBON.NET | プログラミング道 | プログラミング掲示板