Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [VB]: Problema ListBox

  1. #1

    [VB]: Problema ListBox

    Ciao ragazzi,
    Ho un problema non riesco a capire come posso fare per poter raggiungere su una listbox il risultato che voglio premendo il tasto della lettera iniziale.
    In pratica il mio problema è riuscire a creare in VB una listBox che funzioni come le listBox dei FORM HTML.

    Esempio:
    Ho una listbox di 300 elementi per raggiungere l'elemento chiamato Marco invece di stare a scorrere un casino di elementi vorrei raggiungere subito il primo elemento che comincia con la lettera M premendo il tasto M.
    Come posso fare?
    Ho visto che esiste una proprietà delle listbox che è la proprietà sorted ma quella mi mette soltanto gli elemtni in ordine alfabetico.

    Ciao ciao

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Ma non funziona già così ???

    Ti basta popolare la lista...
    codice:
    Private Sub Form_Load()
    For cont = 65 To 80
      List1.AddItem CStr(Chr(cont))
      List1.AddItem CStr(Chr(cont))
    Next cont
    End Sub
    ...e premere un tasto, ad esempio la "P" che è l'ultimo elemento per vederlo.

  3. #3
    MMMM sei sicuro?
    A me non funzia così

  4. #4
    Ma non funziona già così ???

    Ti basta popolare la lista...

    code:--------------------------------------------------------------------------------
    Private Sub Form_Load()
    For cont = 65 To 80
    List1.AddItem CStr(Chr(cont))
    List1.AddItem CStr(Chr(cont))
    Next cont
    End Sub
    --------------------------------------------------------------------------------

    ...e premere un tasto, ad esempio la "P" che è l'ultimo elemento per vederlo.
    Devi usare un'API.
    Metti questo codice in un modulo:
    codice:
    Public Declare Function SendMessage Lib "user32" _
    Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal _
    wParam As Integer, ByVal lParam As Any) As Long
    Public Const LB_FINDSTRING = &H18F
    Quindi quando devi cercare la stringa:
    codice:
    ListName.ListIndex = SendMessage(ListName.hwnd, LB_FINDSTRING, -1, _
    ByVal CStr(Text1.Text))
    Ciao
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  5. #5
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    chipdb in questo modo viene selezionata nella lista la stringa corrispondente o simile.
    Io uso VB5 e ti assicuro che premendo una lettera sulla lista la selezione si sposta su tutti gli elementi che iniziano per la lettera premuta:

    codice:
    Private Sub Command1_Click()
    List1.SetFocus
    SendKeys "P"
    End Sub

  6. #6
    Certo lo so anch'io. Il mio codice serve quando tua hai una Text e scrivendoci una lettera si sposta sul primo valore della lista con quella lettera. Tutto qui. Vanno bene entrambi. Ciao
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  7. #7
    Grazie mille ragazzi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.