Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VB.NET Form opent maar laadt zijn data niet?

None
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: www.campgroundz.be/zoishet.JPG terwijl het zo zou moeten zijn: www.campgroundz.be/zomoethet.JPG
    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

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