Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: TextBox ja ListBox scroll(VB)

Kape [08.07.2005 19:42:45]

#

Huono aiheen otsikko mutta en keksinyt parempaa. Onko jotenkin mahdollista saada ListBoxista scrolli pois ja sitten kun scrollaa textboxia niin listbox scrollautuu "mukana". Ja toinen kysymys viel et onks vb:ssä säännöllisiä lausekkeita? Jos on niin millä lailla niitä käytetään?

Jos jollekkin ei käynyt selväksi niin kieli on Visual Basic 6.

Merri [08.07.2005 19:49:55]

#

Lähinnä regexpiä lienee Like-operaattori:

If "a" Like "[a-z]" Then MsgBox "A!"

(huom! en ole vielä vaivautunut opettelemaan regexpiä ja sen toimintaa, joten saatan olla vähän hakoteillä)


ListBoxin scrollin saa pois vain subclassaamalla, ei liene vaivan arvoista. Toisaalta oman ListBox user controlin teko on aika helppoa; tosin jos ei ole aiemmin user controleja tehnyt, niin sitten voi olla vähän ongelmia.

Tarkoitatko mukana skrollaamisella sitä, että listboxissa on kaikki sanat mitä löytyy myös textboxista? Vai?

Kape [08.07.2005 19:58:03]

#

Merri kirjoitti:

Lähinnä regexpiä lienee Like-operaattori:

If "a" Like "[a-z]" Then MsgBox "A!"

(huom! en ole vielä vaivautunut opettelemaan regexpiä ja sen toimintaa, joten saatan olla vähän hakoteillä)


ListBoxin scrollin saa pois vain subclassaamalla, ei liene vaivan arvoista. Toisaalta oman ListBox user controlin teko on aika helppoa; tosin jos ei ole aiemmin user controleja tehnyt, niin sitten voi olla vähän ongelmia.

Tarkoitatko mukana skrollaamisella sitä, että listboxissa on kaikki sanat mitä löytyy myös textboxista? Vai?

Tuon Liken tiesinkin mutta tolla ei esimerkiksi pysty tekstin korvausta ilmeisesti tekemään?

Listboxissa on eri arvoja mut saman verran rivejä kun textboxissa.

Merri [08.07.2005 20:09:35]

#

API:lla saa pääteltyä textboxin nykyisen rivin:

' simppeli esimerkki, joka vaatii Formin jossa on Text1
Option Explicit

Private Const EM_LINEFROMCHAR = &HC9

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Text1_Change()
    Me.Caption = SendMessage(Text1.hwnd, EM_LINEFROMCHAR, Text1.SelStart, 0&)
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Text1_Change
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
    Text1_Change
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
    Text1_Change
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Text1_Change
End Sub

Toisaalta tämä rivilukema taisi sotkeutua pystyskrollin kanssa, joten yksi vaihtoehto on tehdä päinvastoin kuin olet tarkoittanut: skrollaa listboxilla tekstiboksia. Voin jonkun pienen esimerkin tehdä, jossa tämä tulee vähän enemmän tyylillä kuin useimmat tekevät.

Muoks Koodi korjattu, tuli väärä esimerkki aiemmin.

Kape [08.07.2005 20:12:42]

#

Joo pystysrcoll ei rivinumero. Nojoo toi ei oikeen ole sitä mitä minä haen, mutta kiitos kuitenkin.

Merri [08.07.2005 21:09:35]

#

Tuosta se lähtee liikkeelle se asian setviminen :) Hetkinen, männöö vähän aikaa kun väsään semmoisen pienen esimerkin...

Vastaus

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

Tietoa sivustosta