Teken een scherm met volgende gegevens:
Invoervelden:
Naam: à tekstveld voor het invullen van de naam van de leerling
Blijft in eten: à checkbox of radiobutton om aan te geven of de leerling blijft in eten
Aantal dagen: à om aan te geven hoeveel dgn voor deze maand de leerling blijft in eten. Moet een geheel getal zijn (kleiner dan 22). Het veld dient 0 te zijn indien de leerling niet is blijven in eten voor die maand.
Uitvoervelden:
Listbox met volgende gegevens:
Naam (20pos), 1 spatie, J/N (1 pos), 2 spaties, Aantal dagen (2pos)
Janssens J 12
Peeters N 00
Lievens J 03
Pientermans J 18
Knoppen
‘Toevoegen ‘(voor het toevoegen van een lijn in de listbox)
‘Verwijderen’ (voor het verwijderen van een lijn in de listbox
De actie ‘Weergeven resultaat”
maak hiervoor een nieuw formulier binnen hetzelfde project.
Dit formulier dient enkel een overzicht (tekstvak) te geven van het geopende bestand (maw de inhoud van de listbox), maar enkel een overzicht van het te betalen bedrag. Voor het in-eten dient een leerling 0,5 EUR te betalen.
Je mag de gegevens lezen uit de listbox, gebruik maken van arrays, hulpveld,… doe maar.
Voorbeeld
Janssens 6,00 EUR
Peeters 0,00 EUR
Lievens 1,50 EUR
Pientermans 9,00 EUR
Het probleem is dus dat ik de resultaten dus niet in mijn 2de formulier krijg weergegeven.
Visual Basic Code:
Public Class frmBlijvenEten Public aantaldagen As Integer Public resultaten As String Private Totaal() As Integer Private bovengrens As Integer Private Sub mnuBestandOpenen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandOpenen.Click ' Inlezen van de namen. Dim index As Integer = 0 Dim lijn As String ' Keuzelijst leegmaken. lstLeerlingen.Items.Clear() ' Instellen van het dialoogvenster openen. With dlgOpenen .Filter = "Tekstbestanden (*.txt)|*.txt" .FileName = "" .InitialDirectory = "C:\Users\Jessica Willems\Documents\Visual Studio 2010\Projects\AFSTANDSLESBESTANDEN" .Title = "Openen" End With ' Openen en lezen van het bestand. If dlgOpenen.ShowDialog = DialogResult.OK Then FileOpen(1, dlgOpenen.FileName, OpenMode.Input) Do While Not EOF(1) ' Lezen lijn. lijn = LineInput(1) ' Toevoegen als item in de lijst. lstLeerlingen.Items.Add(lijn) Loop FileClose(1) ' Tekstvakken leegmaken. txtNaam.text = "" txtAantalDagen.Text = 0 chbBlijftEten.Checked = False txtNaam.Focus() End If End Sub Private Sub mnuBestandOpslaanAls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandOpslaanAls.Click Dim index As Integer With dlgOpslaan .InitialDirectory = "C:\Users\Jessica Willems\Documents\Visual Studio 2010\Projects\AFSTANDSLESBESTANDEN" .Filter = "Tekstbestanden (*.txt)|*.txt" .Title = "Opslaan als" End With ' Opslaan van het bestand If dlgOpslaan.ShowDialog = DialogResult.OK Then FileOpen(1, dlgOpslaan.FileName, OpenMode.Output) For index = 0 To lstLeerlingen.Items.Count - 1 PrintLine(1, lstLeerlingen.Items(index)) Next FileClose(1) End If End Sub Private Sub mnuBestandOpslaan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandOpslaan.Click Dim index As Integer If dlgOpenen.FileName = "" Then mnuBestandOpslaanAls_Click(sender, e) Else FileOpen(1, dlgOpenen.FileName, OpenMode.Output) For index = 0 To lstLeerlingen.Items.Count - 1 PrintLine(1, lstLeerlingen.Items(index)) Next FileClose(1) End If End Sub Private Sub mnuBestandNieuw_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandNieuw.Click lstLeerlingen.Items.Clear() txtNaam.Text = "" txtAantalDagen.Text = 0 txtNaam.Focus() End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click Dim prompt As String Dim titel As String = "Fout" Dim item As String Dim ineten As String = "" If txtNaam.Text = "" Then prompt = "Er is geen naam ingegeven." MessageBox.Show(prompt, titel, MessageBoxButtons.OK) txtNaam.Focus() Exit Sub End If If (txtAantalDagen.Text = "") Or (txtAantalDagen.Text > 22) Then prompt = "Er is niet het juiste aantal dagen opgegeven." MessageBox.Show(prompt, titel, MessageBoxButtons.OK) txtAantalDagen.Focus() Exit Sub End If If chbBlijftEten.Checked = True Then ineten = "J" Else ineten = "N" txtAantalDagen.Text = "0" End If item = txtNaam.Text.PadRight(21) & ineten.PadRight(3) & txtAantalDagen.Text.PadRight(2) lstLeerlingen.Items.Add(item) txtNaam.Text = "" txtAantalDagen.Text = 0 txtNaam.Focus() chbBlijftEten.Checked = False End Sub Private Sub btnVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerwijderen.Click Dim prompt As String Dim titel As String Dim antwoord As DialogResult If lstLeerlingen.SelectedIndex = -1 Then titel = "Geen item geselecteerd." prompt = "Selecteer aub een item." MessageBox.Show(prompt, titel, MessageBoxButtons.OK) Exit Sub End If prompt = "Wenst u het item te verwijderen?" titel = "Verwijderen item" antwoord = MessageBox.Show(prompt, titel, MessageBoxButtons.YesNo) If antwoord = DialogResult.Yes Then lstLeerlingen.Items.Remove(lstLeerlingen.SelectedItem) End If End Sub Private Sub mnuBestandAfsluiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandAfsluiten.Click Me.Close() End Sub Private Sub mnuResultaatWeergeven_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuResultaatWeergeven.Click Dim index As Integer = 0 Dim lijn As String Do While Not EOF(1) ' Lezen lijn lijn = LineInput(1) ' Opvullen array Totaal(index) = (aantaldagen * 0.5) 'Verhogen index index = index + 1 Loop bovengrens = index - 1 Dim frm As New frmResultaat Me.Hide() frm.Show() End Sub End Class
Visual Basic Code:
Public Class frmResultaat Private bovengrens As Integer Private totaal() As Integer Private Sub btnSluiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSluiten.Click Me.Close() frmBlijvenEten.Show() End Sub Private Sub frmResultaat_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For index = 0 To bovengrens txtResultaten.Text = (totaal(index)) & vbCrLf Next End Sub End Class
Iemand die mij een tip kan geven?
Veranderd door RedThread, 30 May 2012 - 11:43.
Gehele post iets netter aangepast en code taqs aangepast.


Inzender





