ListViewのヘッダーの背景色を変更するにはどうすればよいですか?Winform ListViewヘッダーの背景色を変更します
7
A
答えて
7
これを行うには、リストビューのOwnerDrawプロパティをtrueに設定します。
これにより、リストビューの描画イベントにイベントハンドラを提供することができます。
以下
MSDNの詳細な例がありますが赤にヘッダーの色を設定するには、いくつかのサンプルコードです:
private void listView1_DrawColumnHeader(object sender,
DrawListViewColumnHeaderEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Red, e.Bounds);
e.DrawText();
}
を私は思います(ただし、間違って証明することに満足しています)OwnerDrawするがセットされたことをtrueにするには、次のようにデフォルトの実装を持つ他の描画イベントのハンドラも用意する必要があります:
private void listView1_DrawItem(object sender,
DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
}
私は確かにmaですリストビューにアイテムを描画させないようにする。
+0
警告の言葉として、それを理解するのに1時間以上かかるので、drawcolumnheaderの中にMSGBOXコマンドを入れないでください!それはvb.netをハングアップ - これはうまくいきました – cardmagik
5
私はこれがパーティーに少し遅れていることを知っていますが、私はまだこの投稿を見ました。これが私を助けてくれました。ここでダビデはちょうどあなたが、コードの最初のビットを置くどんなクラスで* *クラス名を置き換えるフォームのコンストラクタで
public Form()
{
InitializeComponent();
*CLASS NAME*.colorListViewHeader(ref myListView, *SOME COLOR*, *SOME COLOR*);
}
これを呼び出すその後
using System.Windows.Forms;
using System.Drawing;
//List view header formatters
public static void colorListViewHeader(ref ListView list, Color backColor, Color foreColor)
{
list.OwnerDraw = true;
list.DrawColumnHeader +=
new DrawListViewColumnHeaderEventHandler
(
(sender, e) => headerDraw(sender, e, backColor, foreColor)
);
list.DrawItem += new DrawListViewItemEventHandler(bodyDraw);
}
private static void headerDraw(object sender, DrawListViewColumnHeaderEventArgs e, Color backColor, Color foreColor)
{
e.Graphics.FillRectangle(new SolidBrush(backColor), e.Bounds);
e.Graphics.DrawString(e.Header.Text, e.Font, new SolidBrush(foreColor), e.Bounds);
}
private static void bodyDraw(object sender, DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
}
を供給し、コードを少し抽象化されたアプリケーションです*いくつかの種類の色を持つ* COLOR *があります。
//Some examples:
Color.white
SystemColors.ActiveCaption
Color.FromArgb(0, 102, 255, 102);
Good Luck All!
関連する問題
- 1. winformの変更ツールヒントの背景色
- 2. ListViewの行の背景色をListActivityから変更します
- 3. WPFエキスパンダーのヘッダーの背景色を変更します
- 4. Winform Comboboxでオートコンプリートリストボックスの背景色を変更する方法
- 5. セレクタを使用してListViewの背景色を変更する
- 6. ListView位置の背景色を変更してください
- 7. 変更背景色
- 8. プレースオートプレイトフラグメントの前景色と背景色を変更します
- 9. ListViewのテキストの色と背景を変更する方法は?
- 10. CSS、コンテナの背景色を補正する背景色を変更します。
- 11. QTableViewのヘッダーの背景色を変更する方法
- 12. 単一のDataGrid列ヘッダーの背景色を変更する
- 13. GWT StackLayoutPanel:ヘッダーの背景色を変更する方法
- 14. 実行時にアンドロイドのListViewの背景色を変更します
- 15. ListViewで選択されたエントリのみの背景色を変更します
- 16. Android - ListViewの行の背景色の変更
- 17. 変更ポップアップメニューの背景色
- 18. 変更メニューの背景色
- 19. テキストビュー、背景色の変更
- 20. のRadioButton変更背景色
- 21. 変更の背景色++エディタ
- 22. DatePickerDialogヘッダーの背景色
- 23. WinFormを使用しているときに背景色を変更する
- 24. 変更背景色スライダ-NAV
- 25. 変更背景色が
- 26. Excel-変更背景色
- 27. 背景色とテキスト色をJavascriptのタイマーで変更します
- 28. ListViewの背景の変更onFling
- 29. ボタンの背景色を変更する
- 30. UINavigationBarの背景色を変更する
Paintイベントをオーバーライドしてカスタム図面を実装する必要があります。 –
PaintメソッドをオーバーライドするとListViewに何も行われません。 @Davidが提案したOwnerDrawメカニズムを使用する必要があります。そうすることで、ヘッダーコントロールからすべてのスタイリングが削除されます。ホットアイテム、ソートインジケーター、グラデーションバックグラウンドはありません。 – Grammarian