Hvordan endre tekstfargen fra listeboksen Elementer i Visual Basic

Visual Basic er "DrawItem" metoden gjør det mulig å bygge fantasifulle kontroller. Den ListBox kontroll, for eksempel, viser elementer i en liste; men du kan bare endre teksten fargen på hvert element i kontrollen. For å lage en forbedret ListBox som viser et valgt element tekst i en annen farge, må du gjøre en liten endring i ListBox er "DrawItem" metoden.

Bruksanvisning

Endre tekstfarge for alle elementer

1 Start Visual Studio og opprette en ny Visual Basic Windows Forms prosjekt. En ny form som heter "Form1" åpner i redigeringsvinduet.

2 Klikk på "View" -knappen, deretter "Toolbox" for å åpne Visual Studio verktøykasse.

3 Dobbeltklikk på "Listeboks" kontroll. Visual Studio plasserer det på skjemaet, og navnene det "ListBox1."

4 Klikk på "ListBox1" kontrollen og trykk "F4" for å vise vinduet Egenskaper. Dette vinduet kan du angi et kontrollens egenskaper, for eksempel farge og størrelse.

5 Klikk på "Forecolor" eiendom. En rullegardinpilen vises ved siden av eiendommen. Klikk på at pilen for å vise en fargemeny som inneholder faner. "System" -fanen viser Windows-systemfarger; "web" -kategorien viser listen over Web farger; og "Custom" kategorien kan du velge din egen farge fra en farge rutenett.

6 Klikk på en av disse kategoriene, og klikk deretter fargen du ønsker å bruke for teksten i alle listeboksen elementer.

7 Klikk på "Back" element i vinduet Egenskaper for å vise rullegardinpilen. Klikk på at pilen for å velge en farge som beskrevet i forrige trinn. Visual Basic bruker deretter fargen du har valgt som bakgrunnsfarge for alle listeboksen elementer. Fortsett til neste del hvis du ønsker å endre fargen på bare det valgte ListBox elementet.

Endre tekstfarge av et valgt element

8 Dobbeltklikk på skjemaets tittellinjen. Koden for skjemaets "Load" metoden åpnes og viser en tom "Load" metoden.

9 Lim inn følgende kode før den metoden er "End Sub" statement:

ListBox1.Items.AddRange (New Object () { "Sak 1", "element", "element", "Sak 4"})

ListBox1.DrawMode = DrawMode.OwnerDrawFixed

Den første setningen legger til elementer i ListBox. Den neste setningen setter kontrollens tegnemodus til "OwnerDrawFixed." Bruk denne modusen når du ønsker å overstyre Visual Basic standard tegnemodus for en kontroll.

10 Lim inn følgende kode etter "Load" metoden er "End Sub" statement:

Private Sub ListBox1

DrawItem (ByVal sender As Object,

ByVal e As System.Windows.Forms.DrawItemEventArgs) _

Håndtak ListBox1.DrawItem

e.DrawBackground ()

Dim børste Som Brush = Brushes.Black

Hvis (e.State Og DrawItemState.Selected = DrawItemState.Selected) Deretter

børste = Brushes.Green

Slutt om

e.Graphics.DrawString (ListBox1.Items (e.Index) .ToString ()

e.Font, pensel, _

e.Bounds, StringFormat.GenericDefault)

End Sub

Denne koden overstyrer ListBox er "DrawItem" metoden. Den "DrawItem" metoden går hver gang Visual Basic trekker en ListBox element på kontroll.

11 Finn uttalelse som leser, "Dim børste Som Brush = Brushes.Black." Denne kodelinje skaper en "børste" variable som holder fargen på standard tegningen børsten. I dette tilfellet, er at fargen "sort". Endre "Black" til den fargen du ønsker å bruke for å trekke nonselected ListBox elementer. For eksempel, hvis du ønsker å endre standardelement farge til rødt, erstatte den forrige setningen med dette:

Dim børste Som Brush = Brushes.Red

12 Finn følgende uttalelse i koden:

børste = Brushes.Green

Erstatt "Green" med hvilken som helst farge. Visual Basic bruker deretter den fargen å trekke ListBox sin valgte elementet. Den endelige uttalelsen kaller "snøring" metode som trekker listeboksen elementer.

1. 3 Trykk "F5" for å kjøre programmet. Skjemaet vises med ListBox og dens elementer. Klikk på et element for å velge det. Fargen skifter til den fargen du valgte for det valgte elementet. Alle andre elementer vise standardfarge.

Hint

  • Bruk Visual Studio "IntelliSense" -funksjonen for å hjelpe deg å velge fargenavn når du legger dem til "DrawItem" metoden. Tenk på dette utsagnet i denne metoden: ". Dim børste Som Brush = Brushes.Green" Når du skriver perioden etter "Børster.", En meny vises, og viser alle tilgjengelige farger. Tab til den du vil bruke, og trykk "Enter" for å velge det. Visual Basic oppdaterer nå linjen med kode for deg.