VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
(login to hide)
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

Tips en tricks
U bevindt zich > Tips en Tricks > VB .net > Algemene tips > Componenten > Structures met Property
Ik wil een tip ingeven

Tip: Structures met Property
Hypenate - 21 Jun 2008 - 10:44

Uitleg voor het maken van een structure met het gebruik van een property en een arraylist.

 Waarom structures?
Dit is een overzichtelijke manier van werken. De structure kan verschillende datatypes bevatten en dus ook verschillende waarden.
De layout ziet er als volgt uit:

Layout

Het maken van de Structure: Zet dit tussen Public Class Form1 en End Class, je kan de structure ook in een aparte module steken, maar voor gemakshalve ga ik alles in het form coderen.

Code
  1. public structure persoon public naam as string public voornaam as string public leeftijd as integer end structure

We gaan een arraylist aanmaken. Dit is eenvoudiger dan een array omdat ik niets telkens de array(positie) hoef om te ogen. Bij een arraylist gaat hij dat zelf doen, inclusief het bewaren van de reeds ingevoegde gegevens. Boven onze structure code zetten we:

Code
  1. dim arrayPersonen as new ArrayList

Onder de knop "Add" steken we volgende code, let op, de declareren addPersoon als persoon (= de naam van onze structure die we eerder aanmaakten): NB: als je 'addPersoon.' ingeeft, geeft de IntelliSense automatisch de mogelijkheden aan.

Code
  1. dim addPersoon as persoon 'de waardes wegschrijven addPersoon.voornaam = txtVoornaam.Text addPersoon.naam = txtNaam.Text addPersoon.leeftijd = txtLeeftijd.Text arrayPersonen.Add(addPersoon) 'toevoegen in de arraylist lstListbox.Items.Add(addPersoon) 'toevoegen in de listbox

Indien je het programma nu probeert gebeurd er het volgende: Hij geeft de formnaam en de naam van de structure weer.

Dit is natuurlijk niet wat we moeten hebben. We willen dat de volledige naam + de leeftijd weergegeven word. Dit doen we met een Override Function. De override function plaatsen we binnen onze structure. Anders werkt deze niet!

Code
  1. public Overrides function ToString() as string 'Je moet elke 'variabele' van de structure meegeven, in ons geval zijn dat er 3 Return naam & " " & voornaam & " " & leeftijd End Function

Als het programma nu opnieuw runt en een persoon toevoegt, zal je zien dat hij de gegevens correct weergeeft.
De knop 'Toon' We moeten de Persoon zijn gegevens weergeven in de textvakken die we geselecteerd hebben in onze listbox. Hiervoor hebben we een 'Readonly Property' nodig zodat we makkelijk weten welke persoon we geselecteerd hebben in onze listbox: NB: Plaats deze buiten de structure en buiten elk event. Ik persoonlijk zet hem meestal direct onder End Structuren

Code
  1. public readonly property geselecteerdePersoon() as persoon get if lstListbox.SelectedIndex <> -1 then 'als er iets geselecteerd is Return lstListbox.Items(lstListbox.SelectedIndex) End If End Get End Property

Nu plaatsen we deze code onder de knop 'Toon':

Code
  1. dim showPersoon as persoon = geselecteerdePersoon 'Omdat ik = geselecteerdePersoon (= propertynaam) weet VB over 'wie' ik het heb. txtVoornaam.Text = showPersoon.voornaam txtNaam.Text = showPersoon.naam txtLeeftijd.Text = showPersoon.leeftijd

Voor onze knop Remove is volgende code van toepassing:

Code
  1. dim removePersoon as persoon = geselecteerdePersoon if lstListbox.SelectedIndex <> -1 then 'als er iets geselecteerd is arrayPersonen.Remove(removePersoon) 'verwijderen uit de array lstListbox.Items.Remove(removePersoon) 'verwijderen uit de listbox Else 'als er niets geselecteerd is MessageBox.Show("Gelieve een item te selecteren uit de listbox", "Fout") End If

En zo werkt onze structure :) Ik hoop dat jullie er iets aan hebben. Ik heb alles zo simpel mogelijk proberen te houden!

Groetjes,
Hypenate



Download broncode van vbib.be

3016 x gelezen

Commentaar
U dient ingelogd te zijn om commentaar te posten.
 

Er zijn in totaal 102 tips gepost.

 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php