Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Du bliver nød til at lave lidt om på listboxen for at ændre farverne. Dette er heldigvis ikke så svært. Nedenfor har jeg pastet ind en klasse som nedarver fra ListBox, og tilføjer lidt funktionalitet. I denne ListBox kan du ændre farve på tekst og baggrunden bag teksten, når den er selectet.
Lidt meget for 15 point, men hvad faen! :o)
public class VariableColorTextBox : ListBox { public VariableColorTextBox() { this.DrawMode = DrawMode.OwnerDrawFixed; }
private Color _itemBackColor = Color.White;
public Color ItemBackColor { get { return _itemBackColor; } set { _itemBackColor = value; this.Invalidate(); } }
private Color _selectedItemBackColor = Color.FromArgb(150,255,150);
public Color SelectedItemBackColor { get { return _selectedItemBackColor; } set { _selectedItemBackColor = value; this.Invalidate(); } }
private Color _textColor = Color.Black;
public Color TextColor { get { return _textColor; } set { _textColor = value; this.Invalidate(); } }
private Color _selectedTextColor = Color.Red;
public Color SelectedTextColor { get { return _selectedTextColor; } set { _selectedTextColor = value; this.Invalidate(); } }
Og så har jeg ved et uheld kaldt den for VariableColorTextBox... doh! Dette skal selvfølgelig være VariableColorListBox.
Snart sengetid for mig! :-)
Synes godt om
Slettet bruger
09. april 2008 - 21:07#3
Hehe :) Mange tak! Jeg har allerede overide't OnDrawItem-funktionen for at kunne give teksten forskellige farver, så måske kan jeg gøre det enklere, hvis jeg bare ved, hvilken variabel der indeholder den relevante farveværdi?
Det er operativsystemet som tegner listboxen, hvis man bruger en standard listbox. Man har desværre ikke kontrol over hvilke farver der bliver brugt. Den eneste måde at ændre farverne på, er at override ListBox klassen. Så hvidt jeg ved er der ikke en nemmere måde.
Synes godt om
Slettet bruger
10. april 2008 - 08:53#5
Okay... Hvorfor kunne det så lade sig gøre at ændre tekstfarven? Jeg prøver lige at lege med det, når jeg får tid.
Jamen, laver du ikke tekstfarven om ved at override OnDrawItem metoden? I OnDrawItem metoden styrer du jo selv hvordan en item skal tegnes, så kan du tegne baggrunden i hvilken farve du vil! Hvis jeg misforstår, hvordan laver du da om på tekstfarven?
Synes godt om
Slettet bruger
11. april 2008 - 09:56#7
Jo, jeg overwriter OnDrawItem man laver ikke en helt nu klasse. Jeg overskriver kun for instansen.
Synes godt om
Slettet bruger
17. april 2008 - 16:10#8
...
Synes godt om
Slettet bruger
02. maj 2008 - 09:59#9
Lukket. Spørger igen senere, hvis det bliver nødvendigt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.