Yritän siirtää ListBoxilta TextBoxiin tavaraa mutta TextBoxille ei tulostu kuin viimeisin ListBoxin rivi. Miten saan TextBoxiin rivit samalla lailla kuin ListBoxissa on?
Looppaa niin monta kertaa kuin listassa on elementtejä (lista.count muistaakseni) ja joka kerralla lisäät tekstilaatikkoon listan nykyisen elementin (lista.list(luku)) loopin muuttujan mukaan sekä rivinvaihdon. Tekstilaatikon MultiLine-ominaisuuden täytyy tietty olla päällä.
Niin ja saahan sen silleen, että Multiline on päällä tietty...
Ja sitte pistää koodin
Text1.text = "rivi1" & Chr$(13) & Chr$(10) $ "rivi2" & Chr$(13) & Chr$(10) & "rivi3" & Chr$(13) & Chr$(10) $ "rivi4"
chr(13)&chr(10)-yhdistelmälle o myös kätevämpi vaihtoehto vbCrLf.
VAO. Toi oikeasti kans toimi... pitäneepä pitää mielessä
se on Chr(13) eikä Chr$(13) eikä Chr$(10)
NanoSoft kirjoitti:
se on Chr(13) eikä Chr$(13) eikä Chr$(10)
Eipäs puhuta soopaa. Windows-rivinvaihto on carriage return ja linefeed, eli ASCII-merkit 13 ja 10 peräkkäin. Dollarimerkki taas laittaa Chr-funktion palauttamaan merkkijonon tyhmän variantin sijasta.
jaa, itse kylläkin käytin tuota mitä sanoin ja se toimi mainiosti!
NanoSoft kirjoitti:
jaa, itse kylläkin käytin tuota mitä sanoin ja se toimi mainiosti!
Jotkut ohjelmat tulkitsevat tollaisenkin muodon rivinvaihdoksi, mutta oikeampi on tuo Chr$(13) & Chr$(10). Dollarimerkki taas tarkentaa, että kyseessä nimenomaan on merkkijono. Muuten funktio palauttaa arvon varianttina, mikä ei aina ole kovin suotavaa.
Jees.. ittellä ei ole kokemusta muusta kun tosta tollarimerkki rivistä... ainaki se toimii hyvin.
Jooh. Eipä tuo Chr$(13) taida ainakaan yksinään missään olla.
Jossain käytetään pelkästään Chr$(10)-merkkiä mutta taitaapa se windowsissa käytetty olla tuo Chr$(13)&Chr$(10).
Myöskään Chr$(10)&Chr$(13) ei kai ole käytetty juuri missään.
tejeez kirjoitti:
Jooh. Eipä tuo Chr$(13) taida ainakaan yksinään missään olla.
Vanhoissa (<= OS9) mäkeissä.
vbNewLine on kuulemma nopein rivinvaihtovaihtoehto stringeille, itse tosin käytän vbCrLf:ää. Jos välttämättä tahtoo "tehdä kaiken itse", niin sitten ChrW$(13) ja ChrW$(10) on ne mitä kannattaa käyttää, toimii nopeammin kuin Chr$().
Mitäs OS X käyttää? Itse kyllä tiesin mäkkien käyttävän CR:ää, Linuxien LF:ää ja Windowsien CR + LF:ää, mutta en tiennyt mäkkien vaihtaneen systeemiä?
OS X:n ydin perustuu BSD:n, joten rivinvaihtomerkkikin on Unixeista tuttu LF.
Oletetaan että sun listbox objecti on List1 ja tekstiboxi on Text1
For i = 0 to List1.ListCount -1 ' ykkösestä niin monta eteenpäin kun on objecteja Text1.Text = Text1.Text + List1.List(i) & vbCrLf 'lisätään listboxin I rivi ja entteri Doevents 'Ja jos jostain syystä looppi jää surraamaan niin ohjelman voi sammuttaakki Next i
Aihe on jo aika vanha, joten et voi enää vastata siihen.