Visual Basic's "DrawItem"-methode kunt u bouwen fantasierijke besturingselementen. Items in de ListBox-besturingselement, bijvoorbeeld, worden weergegeven in een lijst; u kunt echter alleen de tekstkleur van elk item in het besturingselement wijzigen. Als u wilt maken een verbeterde ListBox die tekst voor een geselecteerd item in een andere kleur wordt weergegeven, hebt u een kleine wijziging aanbrengen in de ListBox's "DrawItem" methode.
Verandert de tekstkleur van alle Items
Start Visual Studio en maak een nieuwe Visual Basic Windows Forms-project. Een nieuw formulier met de naam "Form1" wordt geopend in het bewerkingsvenster.
Klik op de knop "View", en "Gereedschapskist" om te openen de Visual Studio toolbox.
Dubbelklik op het besturingselement "Keuzelijst". Visual Studio het op het formulier geplaatst en naam "Keuzelijst1."
Klik op de "Keuzelijst1" controle en druk op "F4" om het venster Eigenschappen weer te geven. In dit venster kunt u instellen van eigenschappen van een besturingselement, zoals de kleur en maat.
Klik op de eigenschap "ForeColor". Een drop-down pijl wordt weergegeven naast de eigenschap. Klik op deze pijl om een menu van de kleur bevat tabbladen weer te geven. De "System" tab toont de systeemkleuren van Windows; de "Web"-tab toont de lijst van webkleuren; en het tabblad 'Custom' kunt u uw eigen kleur te kiezen uit een raster van kleur.
Een van deze tabbladen, klik op de kleur die u wilt gebruiken voor de tekst van alle items van de ListBox.
Klik op het "Achtergrondkleur (BackColor)" item in het venster Eigenschappen weer te geven van de drop-down pijl. Klik op deze pijl om een kleur zoals beschreven in de vorige stap. In Visual Basic wordt vervolgens de kleur die u hebt geselecteerd als de achtergrondkleur voor alle items van de ListBox. Ga door naar de volgende sectie als u wilt wijzigen van de kleur van alleen het geselecteerde item van de ListBox.
Verandert de tekstkleur van een geselecteerd Item
Dubbelklik op de titelbalk van het formulier. De code voor het formulier 'Load' methode wordt geopend en toont een lege 'Load'-methode.
Plak de volgende code vóór van die methode "End Sub" instructie:
ListBox1.Items.AddRange (nieuwe Object() {"Punt 1", "Item", "Item", "Punt 4"})
ListBox1.DrawMode = DrawMode.OwnerDrawFixed
De eerste instructie worden items aan de keuzelijst toegevoegd. De volgende verklaring ingesteld van het besturingselement tekenmodus aan "OwnerDrawFixed." Gebruik deze modus wanneer u wilt negeren van Visual Basic standaard tekenmodus voor een besturingselement.
Plak de volgende code na van de methode van de "Load" "End Sub" verklaring:
Private Sub ListBox1DrawItem(ByVal sender As Object,
ByVal e As System.Windows.Forms.DrawItemEventArgs) _
Handgrepen ListBox1.DrawItem
e.DrawBackground()
Dim borstel als borstel = Brushes.Black
Als (e.State en DrawItemState.Selected = DrawItemState.Selected) vervolgens
borstel = Brushes.Green
End If
e.Graphics.DrawString(ListBox1.Items(e.Index). ToString(),
e.Font, borstel _
e.Bounds, StringFormat.GenericDefault)
End Sub
Deze code vervangt de ListBox's "DrawItem" methode. De "DrawItem"-methode wordt uitgevoerd telkens wanneer Visual Basic tekent u een ListBox-object in het besturingselement.
Zoek de instructie dat luidt: "Dim borstel als penseel = Brushes.Black." Deze coderegel maakt een "brush" variabele die in het bezit van de kleur van de standaard tekening borstel. In dit geval is die kleur "Zwart." "Black" op de kleur die u wenst te gebruiken om te tekenen van de deelvensters listbox-items wijzigen Bijvoorbeeld, als u wijzigen de item standaardkleur rood wilt, vervang de vorige instructie met dit:
Dim borstel als borstel = Brushes.Red
Ga naar de volgende instructie in de code:
borstel = Brushes.Green
"Groen" wordt vervangen door een kleur. In Visual Basic wordt vervolgens dat kleur om te tekenen van de ListBox's item geselecteerd. De definitieve afrekening roept de "Koord"-methode die de ListBox-items trekt.
Druk op "F5" het programma uit te voeren. Het formulier wordt weergegeven en de ListBox en de items worden weergegeven. Klik op een item om het te selecteren. Het verandert de kleur op de kleur die u hebt gekozen voor het geselecteerde item. Alle andere items weergeven de standaardkleur.
- Met Visual Studio "Intellisense" functie kunt u namen van kleuren kiezen wanneer ze toe te voegen aan de "DrawItem"-methode. Overwegen van deze verklaring in deze methode: "Dim borstel als penseel = Brushes.Green." Wanneer u de periode na 'Borstels.' typt, wordt een menu verschijnt en toont alle beschikbare kleuren. Tab naar degene die u wilt gebruiken en druk op "Enter" om deze te selecteren. Visual Basic werkt nu de regel code voor u.