Gegevensstructuren: list boxen en lijsten

26
Gegevensstructur en: list boxen en lijsten Hoofdstuk 13

description

Gegevensstructuren: list boxen en lijsten. Hoofdstuk 13. In dit hoofdstuk …. Nieuwe control: ListBox Items toevoegen en verwijderen Lengte Selectie, zoeken Nieuwe datastructuur: (I)List Objecten toevoegen en verwijderen Lengte Selectie, zoeken - PowerPoint PPT Presentation

Transcript of Gegevensstructuren: list boxen en lijsten

Page 1: Gegevensstructuren: list boxen en lijsten

Gegevensstructuren:list boxen en lijsten

Hoofdstuk 13

Page 2: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 2

In dit hoofdstuk … Nieuwe control: ListBox

Items toevoegen en verwijderen Lengte Selectie, zoeken

Nieuwe datastructuur: (I)List Objecten toevoegen en verwijderen Lengte Selectie, zoeken

ListBox is grafisch, (I)List werkt achter de schermen

Page 3: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 3

Een ListBox Beschikbaar in de Toolbox Toont een lijst van string items Deze lijst kan tijdens het ontwerpen ingegeven worden

(Properties)

Page 4: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 4

IList De datastructuur die achter de schermen de

items van een ListBox beheert Kan ook onafhankelijk van een ListBox

worden gebruikt Opmerking: dit is eigenlijk geen klasse, maar

een interface hoofdstuk 23 De werkelijke klasse die achter de schermen

speelt is: ListBox.ObjectCollection

Page 5: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 5

IList

In welke namespace vind je IList? Waarom is er geen Imports statement nodig in de code van de Form?

Dim myList As IListmyList = Shopping.Items

Dim numberOfItems As IntegernumberOfItems = myList.Count

‘kortere schrijfwijzeDim numberOfItems As Integer = Shopping.Items.Count

Page 6: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 6

Items toevoegenPrivate Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click Shopping.Items.Add(TextBox1.Text)End Sub

Een toevoeging aan de IList veroorzaakt automatisch een update van de bijhorende ListBox

Page 7: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 7

De lengte van een ListBox

Private Sub CountButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles CountButton.Click MessageBox.Show(CStr(Shopping.Items.Count))End Sub

Je vraagt het aantal elementen op dat in de bijhorende IList zit

Page 8: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 8

Indices

Private Sub Shopping_SelectedIndexChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Shopping.SelectedIndexChanged TextBox1.Text = CStr(Shopping.SelectedIndex)End Sub

Een item selecteren vuurt een event af: SelectedIndexChanged

Indexen starten vanaf 0!

Page 9: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 9

Verwijderen en invoegen

Bestudeer eveneens volgende methodes en maak kleine testprogrammaatjes om deze methodes uit te proberen

Clear, Clone, Contains, IndexOf, LastIndexOf, Remove, RemoveAt, Reverse, Sort

Shopping.Items.RemoveAt(3)

Shopping.Items.Insert(5, “Tea”)

Page 10: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 10

Opzoektabel

Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click Dim monthNumber As Integer Dim monthName As String

monthNumber = CInt(TextBox1.Text) monthName = CStr(Months.Items(monthNumber - 1)) TextBox2.Text = monthName

End Sub

Page 11: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 11

Rekenen met een ListBox

Bestudeer zelf de code

Page 12: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 12

For EachDim sum As IntegerDim n As Integersum = 0

For index As Integer = 0 To Numbers.Items.Count -1 n = CInt(Numbers.Items.Item(index)) sum = sum + nNextSumTextBox.Text = CStr(sum)

Dit kan korter door een speciale For Each constructie

Page 13: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 13

For EachDim sum As Integersum = 0

For Each number As Integer In Numbers.Items sum = sum + numberNextSumTextBox.Text = CStr(sum)

Page 14: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 14

For Each Erg kort Maar: je beschikt niet over de

indexwaarde van de lijstNiet zo flexibel!

Alleen te gebruiken als je alle waarden van een lijst wil doorlopen

Page 15: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 15

Zoeken

Bestudeer zelf de code

Page 16: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 16

Gebruik van een lijst - Genericiteit

De List klasse kan ook op zichzelf gebruikt worden

Algemene datastructuur Preciezer: List is een klasse die de IList

interface implementeert Generisch: je kan aanduiden van welke klasse

de objecten zijn die in de List zitten

Page 17: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 17

List: voorbeeldPrivate myList As List(Of String)...myList = New List(Of String)

Private myList As New List(Of String)

myList kan enkel String objecten bevatten. Dit zal door de compiler gecontroleerd worden.

Page 18: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 18

List: voorbeeldImports System.Collections.Generic

myList.Add("bread")myList.Add("milk")myList.Add("coffee")

Benodigde namespace

Toevoegen van items

Page 19: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 19

List: voorbeeldDim index As IntegerFor index = 0 To myList.Count - 1 myListBox.Items.Add(myList(index))Next

For Each s As String In myList myListBox.Items.Add(s)Next

Doorlopen van een lijst

Page 20: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 20

Opmerking

In het vorige voorbeeld werden de strings gekopieerd van een List naar de lijst van een ListBox

Dit is overbodig werk, want je kan gebruik maken van “Data Binding”

Dit valt echter buiten het bestek van de cursus Meer info:

http://www.codeproject.com/vb/net/databindingconcepts.asp

Page 21: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 21

Methodes en Properties van List

Bestudeer dit zelf in de online Help

Page 22: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 22

Lijsten van objecten

Bestudeer de code: welke klasse van objecten wordt in een List bewaard?

Welk List methodes worden gebruikt?

Page 23: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 23

CheckedListBox Identiek aan een ListBox, maar elk item

kan aangevinkt worden De aangevinkte items zijn te vinden via de

property

CheckedListBox.CheckedItems

Page 24: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 24

Oefening

Tracht zelf volgend programma te schrijven: elk item dat je aan- of afvinkt wordt toegevoegd of verwijderd in de ListBox rechts.

Page 25: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 25

ComboBox Voeg een ComboBox toe op een form Welk event wordt er afgevuurd als een

item wordt geselecteerd? Hoe kan je het geselecteerde item

opvragen? Experimenteer met de property DropDownStyle

Page 26: Gegevensstructuren: list boxen en lijsten

Hoofdstuk 13 Visual Basic .NET voor studenten 26

Oefening

Een ComboBox bevat verschillende kleuren. Een label wordt naargelang de gekozen kleur ingevuld