如何更改ListView的標題的背景顏色?更改Winform ListView標題的背景顏色
7
A
回答
7
您可以通過將列表視圖的OwnerDraw屬性設置爲true來完成此操作。
然後這允許您爲listview的繪製事件提供事件處理程序。
上有MSDN
下面一個詳細的例子是一些示例代碼來設置標題顏色爲紅色:
private void listView1_DrawColumnHeader(object sender,
DrawListViewColumnHeaderEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Red, e.Bounds);
e.DrawText();
}
我認爲(但很高興被證明是錯誤的),隨着的OwnerDraw集爲真,您還需要爲其他繪製事件提供處理程序,其中包含默認實現,如下所示:
private void listView1_DrawItem(object sender,
DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
}
我當然沒有爲了使列表視圖繪製沒有的項目。
+0
作爲一個警告詞,因爲花了我一個多小時才弄明白,不要在drawcolumnheader中放置MSGBOX命令!它掛起vb.net - 這在其他情況下運行良好 – cardmagik 2016-02-21 22:27:27
5
我知道這對派對來說有點晚,但我仍然看到這篇文章,這會幫助我。這是大衛提供
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;
}
然後在你的形式構造函數中調用這個代碼有點抽象應用
public Form()
{
InitializeComponent();
*CLASS NAME*.colorListViewHeader(ref myListView, *SOME COLOR*, *SOME COLOR*);
}
只需更換*類名*與任何類,你把代碼中的第一位和*某種顏色*的某種顏色。
//Some examples:
Color.white
SystemColors.ActiveCaption
Color.FromArgb(0, 102, 255, 102);
好運所有!
相關問題
- 1. 更改UITableView標題的背景顏色
- 2. 更改標題顏色和背景
- 3. 更改WPF標題欄背景顏色
- 4. 更改導航標題背景顏色
- 5. Winform ListView背景顏色LargeIcon視圖
- 6. 更改ListView的背景選擇顏色?
- 7. 更改背景顏色的ListView
- 8. 更改VB6中ListView的背景顏色
- 9. ListView的項目更改背景顏色
- 10. 更改WinForm中標題欄的顏色
- 11. 如何更改DialogFragment標題背景顏色和底線顏色
- 12. 更改行上的背景顏色,但不更改行標題
- 13. 更改iframe問題的背景顏色
- 14. 更改EditText問題的背景顏色
- 15. 更改Raphael「標籤」的背景顏色
- 16. 更改標籤欄的背景顏色
- 17. JustGage - 更改標尺的背景顏色
- 18. PagerTabStrip標題背景顏色
- 19. 更改android listview中背景顏色而不點擊的問題
- 20. Android ListView行背景顏色
- 21. WPF ListView行背景顏色
- 22. 更改背景顏色標籤面板
- 23. 更改ActionBar標籤背景顏色
- 24. 更改背景顏色3
- 25. jqueryMobile更改背景顏色
- 26. 更改背景顏色tabhost
- 27. 更改UIButton背景顏色
- 28. 更改背景顏色8
- 29. WL.SimpleDialog更改背景顏色
- 30. 更改背景顏色
您將需要通過覆蓋Paint事件來實現自定義繪圖。 – 2009-11-29 05:08:43
重寫Paint方法在ListView上不做任何事情。您需要使用@David建議的OwnerDraw機制。請記住,這樣做會從頭控件中刪除所有樣式 - 沒有熱項目,沒有排序指示符,沒有漸變背景。 – Grammarian 2009-11-30 20:14:24