Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Listboxin automaattinen scrollaus

Sivun loppuun

Rautakivi [09.11.2005 16:54:56]

#

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ä.

squid [09.11.2005 17:01:58]

#

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.

Rautakivi [09.11.2005 17:10:12]

#

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ä.

squid [09.11.2005 17:32:35]

#

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.

Rautakivi [09.11.2005 17:46:31]

#

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.

Rautakivi [09.11.2005 19:36:01]

#

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}")

Merri [10.11.2005 03:35:17]

#

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.

Milu [10.11.2005 10:50:14]

#

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"

Nobo [10.11.2005 13:31:55]

#

Milu, katso täältä...

Nobo [10.11.2005 16:31:41]

#

Ei kun unohda tuo. Täältä löytyy varmasti oikeat http://www.gh-gold.co.uk/keycodes.php

NanoSoft [13.11.2005 00:09:05]

#

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...

nomic [13.11.2005 05:42:15]

#

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.

Blaze [13.11.2005 12:42:51]

#

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.

miiro [20.11.2005 11:18:51]

#

Ja ihan tiedoksi vaan, Ainakin VB kutosessa tämä onnistuu koodilla:

List1.ListIndex = List1.ListCount - 1

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta