Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    11

    [VB6] Visualizzazione elemento listview

    ciao,

    in un form ho una listview con un centinaio di elementi ordinati. Cliccando su un pulsante del form inserisco un elemento nuovo che si posiziona già nel posto corretto, cioè in ordine alfabetico.

    Quello che manca è che, dopo averlo inserito, vorrei selezionare e rendere visibile l'elemento nuovo. Con "rendere visibile" intendo scorrere automaticamente la lista e vedere l'elemento sullo schermo.

    qualcuno mi può aiutare?

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Utilizza il metodo

    EnsureVisible

    con l'item appena aggiunto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    11
    Originariamente inviato da oregon
    Utilizza il metodo

    EnsureVisible

    con l'item appena aggiunto.
    l'ho appena fatto ma invece di visualizzare l'elemento va in fondo alla lista dove l'elemento è ancora non visibile. Considera che per inserire l'elemento apro un altra form. la listview (lvTable) si trova in frmMain
    Questo è il codice presente nella form di inserimento

    codice:
    Dim objList As ListItem
    ...
    Set objList = frmMain.lvTable.ListItems.Add(, , Me.ctNome)            
    objList.Selected = True
    frmMain.lvTable.SelectedItem.EnsureVisible
    ...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In un progetto di prova funziona come mi aspetto ... ovviamente il focus rimane sul secondo form, ma il nuovo item viene aggiunto e si vede nel primo form.

    Per spostare il focus puoi scrivere

    frmMain.lvTable.SetFocus

    ma non so se è quello che vuoi.

    Se ancora non va come vuoi tu, allora la causa può essere altro codice che non si conosce ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    11
    ok adesso funziona
    ho dovuto aggiungere

    frmMain.lvTable.Refresh

    prima dell' ensureVisible. Forse perchè era un elemento nuovo... boh!

    grazie

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Forse perché il tuo codice sta all'interno di un ciclo "pesante" che impedisce il ridisegno del controllo.

    Probabilmente sarebbe bastata una

    DoEvents

    dopo la EnsureVisible
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.