Springen naar inhoud


- - - - -
VS 2012

10X Chr(149) In Listbox Naast Elkaar



  • Log in a.u.b. om te beantwoorden
Er zijn 7 reacties in dit onderwerp

#1 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 16 juni 2019 - 13:00

Het lukt maar niet om in een listbox 10 tekens naast elkaar weer te geven, wel onder elkaar.
Iemand een oplossing ?
Dit is de code:
Visual Basic Code:
Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
Dim beginYear As Integer = CInt(txtBeginYear.Text)
Dim endYear As Integer = CInt(txtEndYear.Text)
Dim sales, total As Double
Dim average As Double
Dim numYears As Integer = (endYear - beginYear) + 1

For i = beginYear To endYear
sales = CDbl(InputBox("Sales this year ?"))
total = sales + total
lstData.Items.Add(i & Chr(149) & sales)
Next

average = total / numYears
txtAverageSales.Text = average.ToString("C2") & " millions"
End Sub


#2 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1163 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 16 juni 2019 - 15:20

Bericht bekijkenludo64, op 16 juni 2019 - 13:00, zei:

Het lukt maar niet om in een listbox 10 tekens naast elkaar weer te geven, wel onder elkaar.
Iemand een oplossing ?
Dit is de code:

[vb]
lstData.Items.Add(i & Chr(149) & sales)

Dat compileert geeneens.
Wat probeer je exact te doen? Welk karakter probeer je weer te geven?

#3 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1163 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 16 juni 2019 - 15:33

Bericht bekijkenludo64, op 16 juni 2019 - 13:00, zei:

Het lukt maar niet om in een listbox 10 tekens naast elkaar weer te geven, wel onder elkaar.
Tien tekens naast elkaar is een string van 10 karakters?
Visual Basic Code:

	Dim bullet = Convert.ToChar(&H2022)
	Dim tienBullets As String = New String(bullet, 10)
 



#4 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 16 juni 2019 - 17:20

Thx Dirk, maar heb het ondertussen zelf kunnen oplossen.
Maar ik vond geen middel om het bericht te verwijderen of als opgelost te zetten.

#5 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1163 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 17 juni 2019 - 13:57

Bericht bekijkenludo64, op 16 juni 2019 - 17:20, zei:

Thx Dirk, maar heb het ondertussen zelf kunnen oplossen.
Maar ik vond geen middel om het bericht te verwijderen of als opgelost te zetten.

Je had je oplossing kunnen posten.
Dat kan je trouwens nog altijd.

#6 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 17 juni 2019 - 14:00

Ok Dirk, hier is mijn oplossing:
Visual Basic Code:
Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
Dim beginYear As Integer = CInt(txtBeginYear.Text)
Dim endYear As Integer = CInt(txtEndYear.Text)
Dim sales, total As Double
Dim average As Double
Dim numYears As Integer = (endYear - beginYear) + 1

For i = beginYear To endYear
sales = CDbl(InputBox("Sales this year ?"))
total = sales + total
Dim dots As String = ""
For j = 1 To 10
dots &= Chr(149)
Next
lstData.Items.Add(i & dots & sales)
Next

average = total / numYears
txtAverageSales.Text = average.ToString("C2") & " millions"
End Sub


#7 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1163 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 18 juni 2019 - 12:06

Bericht bekijkenludo64, op 17 juni 2019 - 14:00, zei:

Ok Dirk, hier is mijn oplossing:

Zoals je het nu doet converteer je 10 keer een integer naar een karakter en concateneer je 10 maal een karakter aan een string.
Best is niet te converteren en al helemaal niet concateneren

Gegeven de volgende definities:
Visual Basic Code:
Const dot1 As Char = "•"C
Dim dot2 As Char = Convert.ToChar(&H2022)
Dim dot3 As Char = Chr(149)


Zijn dit de mogelijkheden zonder concateneren in volgorde van mijn persoonlijke voorkeur:

Visual Basic Code:
listBox.Items.Add(New String(dot1, 10)) ' geen conversie
listBox.Items.Add(New String("•"C, 10)) ' geen conversie
listBox.Items.Add(New String(dot2, 10)) ' 1 conversie
listBox.Items.Add(New String(dot3, 10)) ' 1 conversie



En als je eenmalig 10 dots nodig hebt, gewoon:
Visual Basic Code:
listBox.Items.Add("••••••••••")


En als je regelmatig 10 dots nodig hebt:
Visual Basic Code:
Const tienDots As String = "••••••••••"
' ...
listBox.Items.Add("tienDots")
' ...
listBox.Items.Add("tienDots")




#8 ludo64

ludo64

    Rookie Developer

  • Leden
  • Pip
  • 30 berichten
    Laatst bezocht 25 jul 2019 15:42
  • LocatieTongeren

Geplaatst op 18 juni 2019 - 12:45

Thx voor de toelichting Dirk.
Persoonlijk vind ik die Const het eenvoudigst.





Ook met taq VS 2012 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2012] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)