Hoe kan je aan de knop Toevoegen (nieuw form opent zich met textbox en Toevoegen knop) de code zo maken dat je kunt kiezen in welke categorie het komt te staan? Voor meer duidelijkheid zie foto's:
Interactieve Menukaart.JPGArtikel_Toevoegen.JPG
Ik zie i.p.v van blauwe knipperlijntje een grijze rechthoek knipperen. Als ik dan typ typt het programma over het vorige heen terwijl ik er tussen wil typen
Ik heb in mijn TabControl 5 tabs waaronder:
- home
- voorgerechten
- hoofdgerechten
- nagerechten
- drank
In alle tabs heb ik een ListBox gezet. Nu wil ik dat er vanaf het begin dat ik op de Tab klik het er staat en dat als je dan op klikt het bij de rekening komt. Kan dit of moet ik toch maar buttons gebruiken? Of zijn er andere mogelijkheden?
Laatst aangepast door Tha Devil : 18 april 2012 om 15:37 Reden: 3 berichten samengevoegd
Je kan op dezelfde manier als ik dat deed met een Ober een aantal eigenschappen aan een klasse geven.
CPP Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Public Class Bestelling Private _naam As String private _prijs as Double 'overige data die je van een ober wenst op te slaan Public Property Naam() As String Get Return _naam End Get Set(ByVal value As String) _naam = value End Set End Property Public Property Prijs() As Double Get Return _prijs End Get Set(ByVal value As Double) _prijs = value End Set End Property 'rest van de properties voor het getten/setten van alle data Public Sub New(ByVal naam As String, ByVal prijs As Double) _naam = naam _prijs = prijs End Sub Public Overrides Function ToString() As String 'deze string komt in de listbox te staan Return Naam & ", " & Prijs End Function End Class
Vervolgens zou je een button oid kunnen gebruiken voor het optellen van het bestelde item:
CPP Code:
1 2 3 4 5 6 7 8 private totaalPrijs as Double 'totale prijs van alle producten Private Sub btTelDrankOpBijRekening_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btWissel.Click if lbDrank.SelectedIndex <> -1 then Dim b as Bestelling = CType(lbDrank.SelectedItem, Bestelling) totaalPrijs = totaalPrijs + b.Prijs end if End Sub
Niet getest, maar het zou moeten werken. Uiteraard wel alleen op voorwaarde dat je de bestellingen op dezelfde manier toevoegt aan de listbox zoals ik dat in het eerdere voorbeeld deed.
Laatst aangepast door CoD_NL : 15 april 2012 om 11:11 Reden: Constructor in het voorbeeld vergeten aan te passen
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Druk op Insert.
Ik snap de vraag niet helemaal.
Zoiets misschien:
CPP Code:
1 2 Dim lb As New ListBox lb.Items.Add("Hallo")
Dat zou je in principe met een combobox o.i.d. mee kunnen geven.
Ik raad je trouwens aan even naar de posts van CoD_NL te kijken![]()
Wat moet ik uit de codes laten?
zie post 47
@ post 39: ik begrijp niet wat ik moet invoegen/vervangen
@JoZ1: klopt, srry. Maar ik begrijp die antwoorden van hem niet echt. Wat moet ik nou doen bij mijn probleem? En dan heb ik het over het probleem met de artikelen. Ik wil namelijk dat er in de TabControl een ListBox is met daarin een soort van Ober Wijzigen-functie. Hoe moet dat?
Ps. dit hoort bij post #53 eerste zin...
Laatst aangepast door Kerkrade : 15 april 2012 om 12:03
O! Jij wilt dat er een ListBox in je TabControl is i.p.v. een new Form?
Dat kan.
Kijk eens naar de code in mijn voorbeeldproject van het selecteer-ober-form. Die kun je ook toewijzen aan een knop op een tabcontrol![]()
Ok bedankt, wat moet er dan gewijzigd worden aan de code?
Gewoon een andere ListBox gebruiken.
CPP Code:
1 2 3 4 5 6 7 8 Public selectedOber = "" Private Sub Button1_Click() Handles WisselKnop.Click Dim Obers As String() = {"Piet", "Jan", "Jan-Piet", "Piet-Jan", "JoZ1", "Kerkrade"} If Huidige_Ober.Text.Length > 14 Then selectedOber = Huidige_Ober.Text.Split(":")(1).TrimStart(" ") ListBox1.Items.AddRange(Obers) If selectedOber <> "" Then ListBox1.SelectedIndex = Array.IndexOf(Obers, selectedOber) Huidige_Ober.Text = "Huidige ober: " & selectedOber End Sub
En die code moet op welk component/voorwerp?
Misschien begrijp je me beter als je volgende foto gezien hebt:
ListBox.JPG
Het programma sluit ook niet volledig af..
Het proces blijft nog aan staan als je op kruisje klikt.
@bloodshed: zou je me je rekenmachine in je voorbeeld willen uitwerken? Als zich andere vrijwilligers melden ook goed...
@koen1234: bij mij niet hoor, maar zoals je kunt lezen ben ik nu bezig met een betere...
Laatst aangepast door Tha Devil : 18 april 2012 om 15:34 Reden: 4 berichten samengevoegd
Weet je hoe je gewoon kan rekenen in visual basic?
Als je dat weet, dan heb ik hier een manier om af te ronden op 2 decimalen achter de komma:
Let er wel op dat bijvoorbeeld een integer geen getallen achter de komma kan bevatten. Integers worden afgerond op gehele getallen. Dus gebruik geen integers als je met decimale getallen wilt werken... Wat je wel kan gebruiken kan je hier zien: http://msdn.microsoft.com/en-us/libr...=vs.80%29.aspx.Code:i = Math.Round(i, 2)
Ik zou je Doubles willen aanraden.
MartinJM
*EDIT*
Kerkrade: Er is een bewerken knop, dus wil je a.u.b die knop gebruiken als je vlak na een post iets bedenkt wat er nog bij moet, in plaats van een nieuwe post... Daardoor worden alle onderwerpen zo lang....
Hier downloadlink (test a.u.b rekenmachine, ik wil er twee decimalen in kunnen tikken): https://rapidshare.com/files/547489377/Menu_1.0.rar
Ik ben nu bezig met het scannen ervan. Dat doe ik normaal ook altijd, maar nu kreeg ik ook nog deze melding: http://www.siteadvisor.com/restricte...os_ver=6.1.1.0
Misschien eens overwegen om je bestanden ergens anders te uploaden? Eventueel een eigen server? (Vragen daarover kan je in het desbetreffende forum kwijt.)
Malwarebytes Anti-Malware kon niks vinden. McAfee nog bezig...
MartinJM
*EDIT*
Ik ga hem testen als het scannen klaar is...
Enne is het scannen al klaar?