Probleem met klassen in VB.NET 2005

Status
Niet open voor verdere reacties.

xenium

Gebruiker
Lid geworden
1 jul 2007
Berichten
150
Hey,

Ik ben aan het proberen om een programma van vroeger te herschrijven via Visual Basic 2005 (met klassen).

De desbetreffende code van het formulier (form1):

Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.cmbGeslacht.Items.Add("Mannelijk")
        Me.cmbGeslacht.Items.Add("Vrouwelijk")
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myperson As New person
        myperson.p_naam = Me.txtNaam
        myperson.p_voornaam = Me.txtVoornaam
        myperson.p_geslacht = Me.cmbGeslacht.ValueMember
        myperson.p_leeftijd = Me.txtLeeftijd
    End Sub
End Class

De code van de klasse person:

Code:
Public Class person
    Private m_naam As String
    Private m_voornaam As String
    Private m_geslacht As String
    Private m_leeftijd As String

    Public Property p_naam()
        Get
            Return m_naam
        End Get
        Set(ByVal i_naam)
            m_naam = i_naam
        End Set
    End Property

    Public Property p_voornaam()
        Get
            Return m_voornaam
        End Get
        Set(ByVal i_voornaam)
            m_voornaam = i_voornaam
        End Set
    End Property

    Public Property p_geslacht()
        Get
            Return m_geslacht
        End Get
        Set(ByVal i_geslacht)
            m_geslacht = i_geslacht
        End Set
    End Property

    Public Property p_leeftijd()
        Get
            Return m_leeftijd
        End Get
        Set(ByVal i_leeftijd)
            m_leeftijd = i_leeftijd
        End Set
    End Property

    Public Sub New()
        m_naam = "Janssens"
        m_voornaam = "Jan"
        m_geslacht = "Mannelijk"
        m_leeftijd = "0"
    End Sub

    Public Sub New(ByVal inNaam As String, ByVal inVoornaam As String, ByVal inGeslacht As String, ByVal inLeeftijd As String)
        m_naam = inNaam
        m_voornaam = inVoornaam
        m_geslacht = inGeslacht
        m_leeftijd = inLeeftijd
    End Sub

    Public Sub drukAf()
        Dim strBoodschap As String
        strBoodschap = String.Concat(Me.p_voornaam, " ", Me.p_naam, " met het geslacht ", Me.p_geslacht, " is ", Me.p_leeftijd, " oud")
        MessageBox.Show(strBoodschap)
    End Sub
End Class

Als ik het projectje al laat lopen krijg ik de melding dat de code van het formulier
Dim myperson As New person
myperson.p_naam = Me.txtNaam
myperson.p_voornaam = Me.txtVoornaam
myperson.p_geslacht = Me.cmbGeslacht.ValueMember
myperson.p_leeftijd = Me.txtLeeftijd
niet werkt (Conversion from type 'TextBox' to type 'String' is not valid. <-- bij klasse person, property p_naam onder set...).

Iemand enig idee hoe ik in een klasse waarden kan toevoegen die afkomstig zijn uit tekstvelden, ... van een formulier en hoe ik dus dit probleem kan oplossen?

Alvast bedankt...

PS: Heb ook al andere manier geprobeerd, zoals:
dim naam as string
naam = me.txtNaam

Maar krijg elke keer de melding: kan textbox niet converten naar string...
 
Laatst bewerkt:
Ook vroeg ik me nog af hoe ik de waarde van een gekozen item uit de combobox kan uitlezen.

ik dacht met:

me.cmbGeslacht.valuemember, maar dit blijkt niet te werken, wat is dan wel de juiste code?
 
Op dit moment probeer je Me.txtNaam te koppelen aan een string,
maar het een textbox. De een is een object string en de ander een
object textbox, dat kan dus nooit.

Om de waarde uit de textbox te halen moet je volgende doen:
Code:
myperson.p_naam = Me.txtNaam.Text

Om de waarde uit de geselcteerde item van de combobox te halen moet
je het volgende doen:
Code:
myperson.p_geslacht = Me.cmbGeslacht.SelectedText

Ik heb het uit mijn hoofd gedaan en ik ben meer into C#, maar het framework
is hetzelfde, dus het zal ongetwijfeld wel in die trend zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan