Minulla tulee joka napin painalluksella yksi rivi tekstiä listboxiin. Miten saan VB.NETILLÄ listboxin scrollaamaan automaattisesti, että uusin tullut viesti näkyy. Listbox on kahden rivin korkuinen ja sinne tulee tekstiä tyyliin: Model1 hits model2, Model1 is unable to wound model2 jne.
Nyt kaikki viestit tulevat kyllä sinne, mutta näkyvissä on vain kaksi ensimmäistä. Scrollaamalla näkee ne muutkin viestit, mutta olisi erittäin hieno homma jos listboxin saisi automaattisesti päivittymään että uusimmat viestit olisivat aina näkyvillä.
Eikö olisi fiksumpaa tehdä niin, että näytät vain vaikka kaksi viimeistä viestiä, ja sitten olisi nappula josta 'konsolin' saa auki ja näkee kaikki viestit? Mielestni tämä olisi paljon fiksumpi systeemi.
Vois joissakin tapauksissa, mutta juuri tässä tapauksessa on tärkeää saada useampi viesti listboxiin ja sen päivitys. Teen pientä vuoropohjaista taistelupeliä, jossa hahmolla voi olla vaikkapa 10 hyökkäystä per vuoro ja näiden kaikkien hyökkäysten tietoja pitäisi pystyä selaamaan. Vuoron päätyttyä sen voi tietenkin tyhjätä.
No sitten näytät vain tarpeeksi isona sen alueen. Ei mielestäni ole mitään hyötyä selailla niitä kesken taistelun. Voi vaikka loppuun laittaa, että "model1 hits ork1 2 times of 10" tai jtn.
Omasta mielestä se on kyllä tarpeen. Tämä perustuu erääseen figulautapeliin, jonka pelaajat ovat sen verran tarkkoja, että haluavat nähdä millä nopan heitolla he osuivat ja että onnistuiko vastustaja väistämään lyönnin jne. Lisäksi yhdestä hyökkäyksestä saattaa tulla 5 riviä tekstiä ja kun joku hyökkää 10 kertaa niin pahimmassa tapauksessa tulee 50 riviä tekstiä, joten listboxia ei voi kasvattaa.
Sain ratkaistua, sillä tavalla että laitoin jokaisen buttonin painalluksen simuloimaan Page Down napin painallusta, tämä muille tiedoksi mikäli painivat saman ongelman kanssa...
ListBoxTulos.Focus()
SendKeys.Send("{PGDN}")
Eikö VB.NETissä tosiaan toimi vanha yksinkertainen tapa muuttaa ListIndex viimeiseen itemiin? Ja toinen tapa olisi tietysti lisätä aina uusin item ensimmäiseksi, jolloin skrollaussuunta olisi käänteinen.
Jos SendKeys.Send("{PGDN}")=Page Down
Mitkä ovat nuolinäppäimet ylös ja alas vb6:ssa?
Qbasick:ssa tais olla CHR$(0)+"H" ja CHR$(0)+"P"
Milu, katso täältä...
Ei kun unohda tuo. Täältä löytyy varmasti oikeat http://www.gh-gold.co.uk/keycodes.php
aika hyvä paikka tämä ohjelmointiputka kun ei saa vastausta kun esim. tuollaiset kuin squid vaan kertoo oman mielipiteensä asiasta eikä auta ollenkaan vaikka tekijähän se päättää täysin , että mitä haluaa, mutta onneksi niitä on sellaisiakin, jotka auttavat...
NanoSoft kirjoitti:
aika hyvä paikka tämä ohjelmointiputka kun ei saa vastausta kun esim. tuollaiset kuin squid vaan kertoo oman mielipiteensä asiasta eikä auta ollenkaan vaikka tekijähän se päättää täysin , että mitä haluaa, mutta onneksi niitä on sellaisiakin, jotka auttavat...
Ah, kärjistystä.
Aika hyvä paikka tämä ohjelmointiputka, kun täällä ihmiset ei huomaa, että muut on auttanut, heti pitää valittaa, kun toinen tekee toisin.
Avauduinpas.
Ihmettelen suuresti tuota, mistä Merrikin kirjoitti.
NanoSoft kirjoitti:
aika hyvä paikka tämä ohjelmointiputka kun ei saa vastausta
Viimeks kun mää katoin, tää ei ollu mikään helpdesk, jossa vastataan kaikkiin kysymyksiin, vaan keskustelupalsta, jossa, *shock* *horror* keskustellaan asioista.
Ja itse ainakin olisin vain tyytyväinen, jos olisin tekemässä jotain tyhmästi ja joku ehottais parempaa tapaa tilalle.
Ja ihan tiedoksi vaan, Ainakin VB kutosessa tämä onnistuu koodilla:
List1.ListIndex = List1.ListCount - 1
Aihe on jo aika vanha, joten et voi enää vastata siihen.