Как изменить передний цвет заголовка списка? C # Окно формы приложения - PullRequest
3 голосов
/ 11 января 2012

Я знаю, что могу изменить свойство OwnerDraw на true и затем обработать событие DrawColumnHeader, но если я делаю это так, я должен позаботиться обо всем при рисовании заголовка.

В любом случае, я просто меняю цвет переднего плана, а все остальное рисуется по умолчанию?

1 Ответ

2 голосов
/ 28 января 2012

Как насчет этого:

Создайте новый проект WinForm, перетащите элемент управления ListView на форму, установите OwnerDraw = true , View = Details на панели свойств, затем обработайте событие DrawColumnHeader .

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            this.SetLastColumnWidth();

            this.theListView.Layout += delegate
            {
                this.SetLastColumnWidth();
            };
        }

        private void SetLastColumnWidth()
        {
            // Force the last ListView column width to occupy all the
            // available space.
            this.theListView.Columns[ this.theListView.Columns.Count - 1 ].Width = -2;
        }

        private void listView1_DrawColumnHeader( object sender, DrawListViewColumnHeaderEventArgs e )
        {
            // Fill header background with solid yello color.
            e.Graphics.FillRectangle( Brushes.Yellow, e.Bounds );
            // Let ListView draw everything else.
            e.DrawText();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...