Visual Basic s " DrawItem " metoden tillåter dig att bygga fantasifulla kontroller . ListBox kontroll , till exempel , visar objekt i en lista , men kan du bara ändra textfärgen för varje objekt i kontrollen . För att skapa en förbättrad ListBox som visar ett markerat objekts text i en annan färg , måste du göra en liten förändring ListBox s " DrawItem " metoden . Instruktioner
ändra textfärg av alla poster
1
Starta Visual Studio och skapa ett nytt Visual Basic Windows Forms -projektet . En ny form som heter " Form1 " öppnas i redigeringsfönstret .
2
Klicka på " Visa " -knappen och klicka sedan på " Verktygslåda " för att öppna Visual Studio verktygslåda .
3
Dubbelklicka på " ListBox " kontroll . Visual Studio placerar det på blanketten och namnger den " ListBox1 . "
4
Klicka på " ListBox1 " kontroll och tryck på " F4 " för att visa fönstret Egenskaper . Det här fönstret ger dig möjlighet att ställa in ett kontrollens egenskaper , t.ex. färg och storlek .
5
Klicka på " ForeColor " egendom . En drop -down pil visas intill fastigheten . Klicka denna pil för att visa en färg meny innehåller flikar . "System " fliken visas Windows systemfiler färger , "Web "-fliken visas en lista över Web färger , . Och " Custom " fliken kan du välja din egen färg från en färg rutnät
6
Klicka på en av dessa flikar och sedan på den färg du vill använda för texten i alla listrutan poster .
7
Klicka på " BackColor " post i fönstret Egenskaper för att visa dess nedrullningsbara pilen . Klicka denna pil för att välja en färg som beskrivs i föregående steg . Visual Basic använder sedan den färg du har valt som bakgrundsfärg för alla listrutan objekt . Fortsätt till nästa avsnitt om du vill ändra färgen på enbart det markerade ListBox objektet .
Ändra textfärg för ett markerat objekt
8
Dubbelklicka formulärets namnlisten . Koden för formuläret är " Load " metoden öppnas och visar en tom " Load " metoden
9
Klistra in följande kod före denna metod är " End Sub " uttalande : .
ListBox1 . Items.AddRange ( New Object ( ) { " Punkt 1 " , " punkt " , " punkt " , " punkt 4 " } ) katalog
ListBox1.DrawMode = DrawMode.OwnerDrawFixed
första uttalande lägger till objekt i ListBox . Nästa uttalandet ställer kontrollens ritläge till " OwnerDrawFixed . " . Använd det här läget när du vill åsidosätta Visual Basic : s standardläge ritning för en kontroll
10
Klistra in följande kod efter " Load " -metodens " End Sub " uttalande :
Privat sub ListBox1_DrawItem ( ByVal avsändare As Object , _
ByVal e Som System.Windows.Forms.DrawItemEventArgs ) _
Handtag ListBox1.DrawItem
e.DrawBackground ( )
Dim borste Som Brush = Brushes.Black
p Om ( e.State Och DrawItemState.Selected = DrawItemState.Selected ) Sedan
pensel = Brushes.Green
End If
e.Graphics.DrawString ( ListBox1.Items ( e.Index ) . toString ( ) ,
e.Font , borste , _
e.Bounds
, StringFormat.GenericDefault ) katalog
End Sub
Denna kod åsidosätter ListBox s " DrawItem " metoden . Den " DrawItem " metoden körs varje gång Visual Basic ritar en listruta alternativ på kontrollpanelen .
11
Lokalisera uttalande som lyder , " Dim borste Som Brush = Brushes.Black . " Denna kodrad skapar en " borste " variabel som håller färgen på standard ritning pensel . I detta fall , är att färgen " svart . " Ändra " Svart " till den färg du vill använda för att dra de icke valda listrutan objekt . Till exempel , om du vill ändra färg standardobjektet till rött , ersätter det tidigare uttalandet med detta :
Dim borste Som Brush = Brushes.Red
12
Leta upp följande uttalande i koden :
borste = Brushes.Green
Ersätt " gröna " med valfri färg . Visual Basic använder sedan den färgen att fästa ListBox s valda objektet . Den slutliga deklarationen kallar " dragsko " metod som drar listboxen poster .
13
Tryck " F5 " för att köra programmet . Formuläret öppnas och visar ListBox och dess objekt . Klicka något objekt för att markera det . Dess färg ändras till den färg du valt för den valda posten . Alla andra poster visa standard färg .