Frage

Ich weiß, ich kann das ändern OwnerDraw Eigentum an true und dann mit dem umgehen DrawColumnHeader Ereignis, aber wenn ich es so mache, muss ich mich um alles kümmern, wenn ich den Header zeichne.

Gibt es sowieso, dass ich nur die Vordergrundfarbe ändere und alles andere mit Standardeinstellungen gezeichnet wird?

War es hilfreich?

Lösung

Wie wäre es damit:

Erstellen Sie ein neues WinForm -Projekt, ziehen Sie a Listenansicht Kontrolle auf das Formular, einstellen Inhaberdraw = true, Ansicht = Details im Bereich des Eigenschaften und dann mit dem handeln DrawColumnheader Veranstaltung.

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();
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top