1

これは、SQL ステートメントの出力を Datagrid ビューに表示する VB .NET アプリケーションです。.NET 2005 を使用しています。

グリッド コントロールのヘッダーのセパレーターをフォームの GridColor と同じ色にする必要があります。下の図を参照してください。

代替テキスト

DataGridView コントロールのすべてのプロパティを調べてみたところ、DataGridViewAdvancedHeaderStyle や DataGridViewHeaderBorderStyle など、有望と思われる興味深いものがいくつか見つかりましたが、いずれも色を変更できないようです。

GDI+ コントロールで全体を作り直さずにこれを行う方法を知っている人はいますか?

4

3 に答える 3

2

このためのプロパティが見つからなかったので、最終的にカスタム コンポーネントを作成し、OnPaint イベント ハンドラをオーバーロードして、既存のコンポーネントの上に線を描画しました。

他の誰かが解決策を探してこの投稿に出くわした場合のコードは次のとおりです。

Private Sub CustomDataGridView_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    Dim g As Graphics = e.Graphics
    Dim pen As New Pen(Me.GridColor)
    Dim TWidth As Integer = 2
    Dim HeaderWidth As Integer = 0
    If Me.RowHeadersVisible Then
        HeaderWidth = Me.RowHeadersWidth
    End If
    For Each column As DataGridViewColumn In Me.Columns
        Dim x As Integer = HeaderWidth + TWidth - 1
        TWidth += column.Width
        Dim top As Integer = column.HeaderCell.ContentBounds.Top
        Dim bottom As Integer = column.HeaderCell.ContentBounds.Bottom + 1
        pen.Width = 2
        g.DrawLine(pen, x, top, x, bottom)
    Next column
End Sub
于 2010-02-10T19:35:06.983 に答える
0

写真が見にくいのですが、これで遊んでみませんか?

DataGridView.ColumnBordersHeaderStyle
DataGridView.RowBordersHeaderStyle
于 2010-01-14T22:48:50.863 に答える