Vraag & Antwoord

Programmeren

VB.NET Form opent maar laadt zijn data niet?

2 antwoorden
  • Een probleem met mijn huidige project, heb er al even op zitten zoeken maar het probleem is er nog altijd jammer genoeg. Daarom stel ik hier het probleem even voor: Ik heb een startform (start.vb) Ik heb een form vragenRijbewijs en enkele classes (Vraag inherits vragenRijbewijs, Keuze inherits Vraag) Ik ben momenteel aan het zorgen dat een gebruiker een 'rijbewijsexamen' kan maken en dat ik dus kan bijhouden welke score aan welke gebruiker toebehoord. Ik zit echter met het huidige probleem: Wanneer ik mijn rijbewijsVragen oproep vanuit de Start form krijg ik mijn rijbewijsVragen form wel te zien, maar er staat geen data in, niets. Bij mijn radiobuttons staat hun normale tekst (radiobutton1, radiobutton2,...) terwijl daar normaal gezien de antwoorden worden ingelezen... Bij mijn label staat Label1, er wordt dus niets geïnitialiseerd?? Om het even te illustreren, een screenshot: [url]www.campgroundz.be/zoishet.JPG[/url] terwijl het zo zou moeten zijn: [url]www.campgroundz.be/zomoethet.JPG[/url] Wanneer ik mijn project run met als startup vragenRijbewijs dan werkt het programma wel, het is enkel wanneer ik begin met Start.vb dat het mis loopt... Hieronder mijn code (onnodige delen weggelaten) Start.vb: [code:1:28b5fa594e]Public Class Start Protected naam As String Protected email As String Private Sub btnExamen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExamen.Click naam = Me.txtNaam.Text email = Me.txtEmail.Text Dim rbv As New RijbewijsVragen(naam, email) rbv.Show() End Sub End Class[/code:1:28b5fa594e] vragenRijbewijs.vb [code:1:28b5fa594e]Imports System.IO Imports Microsoft.VisualBasic.ControlChars Public Class RijbewijsVragen Protected vraagTeller As Integer = 0 Protected antwTeller As Integer = 0 Protected juistTeller As Integer = 0 Protected foutTeller As Integer = 0 Protected magAanduiden As Boolean = False Protected getallen As List(Of Integer) = New List(Of Integer) Protected vragen As List(Of String) = New List(Of String) Protected info As List(Of String) = New List(Of String) Protected naam As String Protected email As String Private randomGetal As Random = New Random() Private randomInt As Integer Private teller As Integer = 0 Public Sub New(ByVal nam As String, ByVal emai As String) InitializeComponent() Me.naam = nam Me.email = emai Me.lblCorrect.Text = "Juist: " & juistTeller Me.lblFout.Text = "Fout: " & foutTeller Me.Text = "Rijbewijs vragen" End Sub Public Sub New() ' This call is required by the Windows Form Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. Me.lblCorrect.Text = "Juist: " & juistTeller Me.lblFout.Text = "Fout: " & foutTeller Me.Text = "Rijbewijs vragen" End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Vraag.leesVragen() Vraag.leesInfo() Vraag.leesAntwoorden() Vraag.leesAfbeeldingen() Me.vulGeheelIn() End Sub Private Sub buVolgende_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buVolgende.Click Try If tellerDoorlopen() Then startEind(juistTeller) Else Keuze.controleerAntwoord() Me.vulGeheelIn() Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1 End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Overridable Sub vulGeheelIn() Try magAanduiden = False randomize() Vraag.uncheckAntwoorden() Me.hervalidatie() Vraag.vulVraagIn(getallen.Item(vraagTeller)) Vraag.vulInfoIn(getallen.Item(vraagTeller)) Vraag.vulAntwoordenIn(getallen.Item(vraagTeller)) Vraag.vulAfbeeldingIn(getallen.Item(vraagTeller)) Vraag.uncheckAntwoorden() vraagTeller = vraagTeller + 1 magAanduiden = True Catch ex As Exception MessageBox.Show(ex.Message) Dim eind As Eind = New Eind(Keuze.score) eind.ShowDialog() Me.Close() End Try End Sub [/code:1:28b5fa594e] Vraag.vb: [code:1:28b5fa594e] Public Class Vraag Inherits RijbewijsVragen Private Eind As Eind Private randomGetal As Random = New Random() Protected antwoorden As List(Of String) = New List(Of String) Protected afbeeldingen(24) As Image Public Sub leesVragen() Dim vr() As String Dim line As String Dim reader As StreamReader = File.OpenText("vragen.txt") Try line = reader.ReadLine While line <> Nothing vr = Split(line, ",") For i As Integer = 0 To UBound(vr) vragen.Add(vr(i)) Next line = reader.ReadLine End While Catch ex As Exception MessageBox.Show(ex.ToString) Finally reader.Close() End Try End Sub Public Sub leesInfo() Dim inf() As String Dim line As String Dim reader As StreamReader = File.OpenText("info.txt") Try line = reader.ReadLine While line <> Nothing inf = Split(line, ",") For i As Integer = 0 To UBound(inf) info.Add(inf(i)) Next line = reader.ReadLine End While Catch ex As Exception MessageBox.Show(ex.Message) Finally reader.Close() End Try End Sub Public Sub leesAntwoorden() Dim aw() As String Dim line As String Dim reader As StreamReader = File.OpenText("antwoorden.txt") Try line = reader.ReadLine While line <> Nothing aw = Split(line, ",") For i As Integer = 0 To UBound(aw) antwoorden.Add(aw(i)) Next line = reader.ReadLine End While Catch ex As Exception MessageBox.Show(ex.Message) Finally reader.Close() End Try End Sub Public Sub leesAfbeeldingen() For i As Integer = 0 To UBound(afbeeldingen) afbeeldingen(i) = System.Drawing.Image.FromFile("Afbeeldingen\Afbeelding" & (i + 1).ToString() & ".JPG") Next End Sub Public Sub vulVraagIn(ByVal random As Integer) Try RijbewijsVragen.lblVraag.Text = vragen.Item(random).ToString & "dit is vraag " & random Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub vulInfoIn(ByVal random As Integer) Try RijbewijsVragen.lblInfo.Text = info.Item(random).ToString Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub vulAntwoordenIn(ByVal random As Integer) visibleAntwoorden() verplaatsAntwoorden() Try RijbewijsVragen.rbAntwoord1.Text = antwoorden.Item(random * 3) RijbewijsVragen.rbAntwoord2.Text = antwoorden.Item(random * 3 + 1) RijbewijsVragen.rbAntwoord3.Text = antwoorden.Item(random * 3 + 2) If RijbewijsVragen.rbAntwoord3.Text.Equals("niks") Then RijbewijsVragen.rbAntwoord3.Visible = False End If Me.uncheckAntwoorden() Me.magAanduiden = False Catch ex As Exception End Try End Sub Public Sub vulAfbeeldingIn(ByVal i As Integer) Try RijbewijsVragen.PictureBox1.Image = afbeeldingen(i) Catch ex As Exception End Try End Sub[/code:1:28b5fa594e] Keuze.vb: [code:1:28b5fa594e] Public Class Keuze Inherits Vraag Protected foutVragen As List(Of String) = New List(Of String) Public Sub controleerAntwoord() If RijbewijsVragen.rbAntwoord1.Checked Then juistTeller = juistTeller + 1 RijbewijsVragen.lblCorrect.Text = "Juist: " & juistTeller Else foutTeller = foutTeller + 1 RijbewijsVragen.lblFout.Text = "Fout: " & foutTeller End If End Sub Public Property score() As Integer Get Return juistTeller End Get Set(ByVal value As Integer) juistTeller = value End Set End Property End Sub End Class [/code:1:28b5fa594e] En dan vraag ik me ook af waarom ik mijn radiobuttons, labels niet kan aanspreken dmv: [code:1:28b5fa594e] dim rbv as rijbewijsVragen = new rijbewijsVragen() rbv.radiobutton1[/code:1:28b5fa594e] ik moet ze echt expliciet aanspreken: [code:1:28b5fa594e]rijbewijsVragen.radioButton1[/code:1:28b5fa594e] Als iemand me even zou kunnen helpen, echt waar, bedankt!
  • Van je code snap ik niet zo veel (C#'er ;)), maar waarom debug je de boel niet gewoon even? Zet een breakpoint in de Form1_Load methode en kijk waar het mis gaat.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.