Jak zmienić kolor tła nagłówków ListView?Zmiana koloru tła nagłówków WinFit ListView
Odpowiedz
Możesz to zrobić, ustawiając właściwość OwnerDraw dla widoku listy na wartość true.
Umożliwia to udostępnienie programów obsługi zdarzeń dla zdarzeń losowania listview.
Jest szczegółowy przykład na MSDN
Poniżej znajduje się przykładowy kod, aby ustawić kolor nagłówka czerwono:
private void listView1_DrawColumnHeader(object sender,
DrawListViewColumnHeaderEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Red, e.Bounds);
e.DrawText();
}
myślę (ale jestem szczęśliwy, że okazały się błędne), że z zestawem OwnerDraw na prawdę, musisz również dostarczyć procedury obsługi dla innych zdarzeń losowania, które mają domyślne implementacje, jak pokazano poniżej:
private void listView1_DrawItem(object sender,
DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
}
Ja na pewno nie mam naged, aby listview narysował elementy bez tego.
Jako słowo ostrzeżenia, ponieważ zajęło mi ponad godzinę, aby to zrozumieć, nie umieszczaj komendy MSGBOX wewnątrz komendy drawcolumnhead! Powoduje zawieszenie się vb.net - w przeciwnym razie zadziałało dobrze – cardmagik
Wiem, że jest trochę za późno na imprezę, ale wciąż widziałem ten post i to by mi pomogło. Tutaj jest trochę roztargniony zastosowanie kodu David dostarczonej
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;
}
Następnie nazwać to w konstruktorze formularza
public Form()
{
InitializeComponent();
*CLASS NAME*.colorListViewHeader(ref myListView, *SOME COLOR*, *SOME COLOR*);
}
Wystarczy wymienić * Nazwa klasy * z niezależnie od klasy można umieścić pierwszy kawałek kodu w i * KILKA KOLORÓW * z jakimś kolorem.
//Some examples:
Color.white
SystemColors.ActiveCaption
Color.FromArgb(0, 102, 255, 102);
Powodzenia!
- 1. Zmiana koloru tła ActionBarSherlock
- 2. select2 zmiana koloru tła
- 3. Gnuplot - zmiana koloru tła
- 4. Zmiana koloru tła UIButton
- 5. Zmiana koloru kciuka i koloru tła JScrollPane?
- 6. Zmiana koloru tekstu na podstawie koloru tła
- 7. Zmiana koloru tła dla UIPageViewController
- 8. Zmiana koloru tła przycisków ActionBar
- 9. Zmiana koloru tła paska zakładek
- 10. zmiana koloru tła UIAlertcontroller Kolor
- 11. Zmiana koloru tła na NSAttributedString
- 12. Zmiana koloru tła UIView programowo
- 13. Android płótno zmiana koloru tła
- 14. Zmiana koloru tła formularza z kodem szesnastkowym
- 15. Zmiana koloru tła poszczególnych elementów w locie
- 16. Zmiana koloru tła wyłączonego pola wprowadzania danych
- 17. Zmiana koloru tła TextView na kliknięcie android
- 18. Zmiana koloru tła po wyświetleniu okna podręcznego
- 19. Zmiana koloru tła widgetu aplikacji programowo
- 20. Zmiana koloru tła Układ liniowy podczas klikania
- 21. Zmiana koloru tła w aplikacji konsoli C#
- 22. Eclipse 4.2 Zmiana koloru tła konsoli Java
- 23. Zmiana koloru obrazu tła firefox/chrome
- 24. Zmiana koloru tła niższego trybu w Emacs
- 25. zmiana koloru tła układu w Androidzie
- 26. Zmiana koloru tła elementów zastępczych css
- 27. Zmiana koloru tła "poprawek" w środowisku Eclipse
- 28. pygtk zmiana koloru tła widżetu gtkHBox
- 29. Zmiana koloru tła określonego wiersza w slickgrid?
- 30. Zmiana koloru tła przeciągnij-usuń w Swift
należy zaimplementować niestandardowy rysunek przez przesłonięcie zdarzenia Paint. –
nadpisywanie metody Paint nie robi nic na liście ListView. Musisz użyć mechanizmu OwnerDraw, który zasugerował @David. Pamiętaj tylko, że spowoduje to usunięcie całej stylizacji z kontrolki nagłówka - bez gorącego elementu, bez wskaźników sortowania, bez tła gradientowego. – Grammarian