Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / School & Studie / Huiswerkvragen: Exacte vakken
Reageren
 
Topictools Zoek in deze topic
Oud 28-05-2011, 07:25
jimmy1
jimmy1 is offline
hallo iedereen,

ik ben nu begonnen (na veel lezen en uitpluizen) aan mijn form applicatie. maar ik zit met het volgend probleem. ik heb deze code ingegeven:code1
[CODE]

Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If My.Settings.Contacts Is Nothing Then
My.Settings.Contacts = New System.Collections.Specialized.StringCollection
If TextBox1.Text = "" Or TextBox2.Text = "" Then
MsgBox("One or more fields are empty or invalid.", MsgBoxStyle.Exclamation, "Invalid Information")
Else
My.Settings.Contacts.Add(TextBox1.Text + " - " + TextBox2.Text)
My.Settings.Save()
Me.Close()
End If
Else
If TextBox1.Text = "" Or TextBox2.Text = "" Then
MsgBox("One or more fields are empty or invalid.", MsgBoxStyle.Exclamation, "Invalid Information")
Else
My.Settings.Contacts.Add(TextBox1.Text + " - " + TextBox2.Text)
My.Settings.Save()
Me.Close()
End If
End If
TextBox1.Clear()
TextBox2.Clear()
Form1.ListBox1.Items.Clear()
For Each Name As String In My.Settings.Contacts
Form1.ListBox1.Items.Add(Name)
Next
End Sub
End Class
[CODE]

maar ik krijg een errormelding:
Expression is a value and therefore cannot be the target of an assignment

specifiek hier: My.Settings.Contacts = New System.Collections.Specialized.StringCollection.

de eerste code is van mijn bijgevoegde form in mijn applicatie.form 1 heeft deze code en geeft geen probleem

[CODE]

Public Class Form1

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim Contact As String = TextBox1.Text.ToString()
Dim Index As Integer = ListBox1.FindString(Contact)
If Index = -1 Then
ListBox1.SelectedIndex = ListBox1.SelectedIndex
Else
ListBox1.SetSelected(Index, True)
End If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If ListBox1.SelectedIndex < 0 Then
Else
Dim dlgrst As MsgBoxResult
dlgrst = MessageBox.Show("Are you sure you want to remove the contact: '" & ListBox1.SelectedItem & "'?", "Remove Contact?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If dlgrst = MsgBoxResult.Yes Then
My.Settings.Contacts.Remove(ListBox1.SelectedItem)
My.Settings.Save()
ListBox1.Items.Clear()
For Each Name As String In My.Settings.Contacts
ListBox1.Items.Add(Name)
Next
ElseIf dlgrst = MsgBoxResult.No Then

End If
End If
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
For Each Name As String In My.Settings.Contacts
ListBox1.Items.Add(Name)
Next
Catch ex As Exception

End Try
End Sub
End Class
[CODE]

ik ben hier al 7 uur aan bezig maar ik krijg het maar niet weg. ik heb ook nog een andere vraag. ik de bovenste code geef ik aan dat er twee textboxen zijn(waar er gegevens inkomen zoals de naam of telefoon) maar ik zou graag nog 4 andere textboxen toevoegen om nog meer informatie te kunnen ingeven.maar hoe doe ik dat om die erin te brengen zonder dat het een te grote warboel wordt? Want op mijn manier zal dat teveel if's bevatten.

weet iemand het antwoord?

groeten
Met citaat reageren
Advertentie
Oud 28-05-2011, 17:14
ILUsion
Avatar van ILUsion
ILUsion is offline
Mijn Visual Basic is wat roestig, dus ik zal je enkel wat tips geven om die forms goed af te handelen.

Maak in je Form-object gewoon een method ("Sub") aan met een definitie die ongeveer het volgende doet:
Code:
Private Sub Validate() 
If TextBox1.Text = ""
  MsgBox("Please fill TextBox1", MsgBoxStyle.Exclamation, "Invalid Information")
End If
If TextBox2.Text = ""
  MsgBox("Please fill TextBox2", MsgBoxStyle.Exclamation, "Invalid Information")
End If
End Sub
Nog beter is het om van daaruit een boolean(bool) te laten teruggeven die True is als je gegevens kloppen en False als er boxjes leeg zijn of ongeldige informatie bevatten (maar dat zou ik zo snel niet meer in VB kunnen uitschrijven zonder goede editor).

Er bestaan betere manieren natuurlijk: je kan die tekstvakken in een array proberen steken (of aan het formulier vragen welke tekstvakken hij heeft) en die in een For (Each)-lus afgaan en op basis daarvan vragen om alles in te vullen.

Ik zou je trouwens ook aanraden om die TextBox1 etc. te vervangen door goede namen: Name, Phone, Street, ... of eventueel NameField, ... Idem voor Button1 enzovoorts: noem die Submit bv.

Op die manier krijg je toch wat meer overzicht in je code en moet je niet onthouden wat TextBox1 nu ook alweer was (was dat nu telefoonnummer, of schoenmaat van de gebruiker?)
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 04:30.