Archief - [PROG][VB.Net] info ophalen uit een combobox

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

denkimi

Legacy Member
hallo, ik ben van school uit pas begonnen met visualbasic. nu moeten we een klein programma schrijven. ik zit echter met een probleem.

ik heb dus 3 comboboxen waaruit een datum moet gekozen worden, de eerste dient om de jaren te kiezen, de 2e voor de maanden en de 3e voor de dagen.
nu is het zo dat de keuzelijst die voorkomt in de 3e combobox afhankelijk is van de keuze in de 2e combobox (verschillend aantal dagen per maand, schrikkeljaren)

ik ben (met wat hulp van de leerkracht) al zover dat de 3 comboboxen werken, en dat ik de door de gebruiker gekozen info kan ophalen uit de 1 en de 2e combobox. maar voor de 3e combobox (de dagen) krijg ik een foutmelding
"Er is een fout opgetreden bij het maken van het formulier. Zie ExceptionInnerException voor details. De fout is: De conversie van tekenreeks naar type Integer is ongeldig."

als ik
Code:
Private Sub Maand_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Maand.SelectedIndexChanged
        Dim maanden() As String = {"Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"}

        Dim maandnummer As Integer = Array.IndexOf(maanden, Maand.Text)

        Dag.Items.Clear()

        For dagen As Integer = 1 To Date.DaysInMonth(Jaar.Text, Array.IndexOf(maanden, Maand.Text) + 1)
            Dag.Items.Add(dagen)
        Next


        Dim jaarnummer As Integer = Jaar.Text
        Dim dagnummer As Integer = Dag.Text

        Dim geboortedatum As Date = DateSerial(jaarnummer, maandnummer + 1, dagnummer)


        Label1.Text = Val(jaarnummer)
        Label2.Text = Val(maandnummer + 1)
        Label3.Text = Val(dagnummer)
ingeef als code.

als ik de code verander naar
Code:
Private Sub Maand_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Maand.SelectedIndexChanged
        Dim maanden() As String = {"Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"}

        Dim maandnummer As Integer = Array.IndexOf(maanden, Maand.Text)

        Dag.Items.Clear()

        For dagen As Integer = 1 To Date.DaysInMonth(Jaar.Text, Array.IndexOf(maanden, Maand.Text) + 1)
            Dag.Items.Add(dagen)
        Next


        Dim jaarnummer As Integer = Jaar.Text
        Dim dagnummer As Integer = [B]Date.DaysInMonth(Jaar.Text, Array.IndexOf(maanden, Maand.Text) + 1)
[/B]
        Dim geboortedatum As Date = DateSerial(jaarnummer, maandnummer + 1, dagnummer)


        Label1.Text = Val(jaarnummer)
        Label2.Text = Val(maandnummer + 1)
        Label3.Text = Val(dagnummer)

wordt de "dagnummer" automatisch het aantal dagen in de gekozen maand.

heeft er iemand een idee hoe ik de gekozen info uit de 3e combobox kan halen en omzetten naar een integer?

http://users.telenet.be/biggenvarkensfredje/programma/rekenaar.zip

mvg Mats

denkimi

Legacy Member
mijn eerste probleem is dus opgelost door

Dim dagnummer As Integer = Date.DaysInMonth(Jaar.Text, Array.IndexOf(maanden, Maand.Text) + 1)
te vervangen door
Dim dagnummer As Integer = Val(Dag.Text)


nu zou ik echter een knop willen toevoegen die met die datum en de datum van vandaag enkele berekeningen maakt.

daarvoor maak ik dus een nieuwe private sub
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

maar hoe kan ik nu de info (3 integers) uit de bovenliggende private sub overzetten naar deze nieuwe private sub?

mvg mats

Recipe4hate

Legacy Member
Je variabelen globaal declareren lijkt mij de simpelste oplossing hier.
Je vergroot zo de scope en dan kun je overal in je form eraan.
->in plaats van in een variabele in je subroutines de declareren, doe je dit bovenaan, onder je public class-> private JaarNummer as integer
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan