0

FastObjectListView コントロールでカスタム ColumnHeaders を描画しようとしています。

これまでのところコードは機能しますが、ColumnHeaders の空き領域 (つまり、列ヘッダー atm を含まない部分) はデフォルトで描画されます。

    private void olvMain_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
    {
        e.Graphics.FillRectangle(Brushes.Black,
            e.Bounds.X, e.Bounds.Y,
            e.Bounds.Width, e.Bounds.Height);

        e.Graphics.DrawRectangle(Pens.Lime,
            e.Bounds.X - 1, e.Bounds.Y - 1,
            e.Bounds.Width - 1, e.Bounds.Height - 1);

        e.DrawText();

        e.DrawDefault = false;
    }

追加した:

e.DrawDefault = false;

それがないと、列ヘッダーのデフォルト スタイルがカスタム スタイルの上に描画されますが、列ヘッダーバーの空き領域には列ヘッダーが含まれていないため、デフォルト スタイルで描画されます。

列ヘッダーの空き領域の意味を明確にするための写真を次に示します: 画像リンク

前もって感謝します。

4

1 に答える 1

1

黒くペイントされていない領域は、ヘッダー クライアント領域の外側にあるため、コントロールでペイントできません。

その領域の色を変更する簡単な方法はありません。この質問とその回答を見て、いくつかの可能な解決策を確認してください。

于 2010-01-28T22:20:28.330 に答える