Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] ToolTip ed elementi ListBox
Forum - C# / VB.NET - [VB.NET] ToolTip ed elementi ListBox

Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 18:46
Domenica, 07/11/2010
Ciao ragazzi vado subito al dunque, come faccio a visualizzare il contenuto di una riga del listbox dentro il tooltip passandoci semplicemente sopra?

PM Quote
Avatar
marco1 (Normal User)
Pro


Messaggi: 157
Iscritto: 12/02/2009

Segnala al moderatore
Postato alle 22:49
Domenica, 07/11/2010
Io non l'ho mai fatto! xo ci provo...

Codice sorgente - presumibilmente VB.NET

  1. Dim _SelectedIthem as integer
  2. Private Sub ListBox1_MouseMove(ByVal sender as object, byval e as system.windows.forms.mouseeventargs) handles ListBox1.MouseMove
  3. Dim _tmp as integer
  4. _tmp = math.troncate(e.y/Listbox1.IthemHeight) + ListBox1.TopIndex
  5. if _tmp => Listbox1.ithem.count then _selectedIthem = -1 : Exit Sub
  6. If _selectedIthem <> _tmp or _selectedithem = -1 then
  7. _selectedithem = _tmp
  8. Tooltip1.show(listbox1.ithems(_tmp).tostring,Listbox1, e.x+10,e.y,500)
  9. end if
  10. end sub



E solo un po rudimentale... ma funziona... molto probabilmente esiste gia qualcosa di pronto... ma questo è un buon inizio... :k: :k: :k:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:26
Lunedì, 08/11/2010
Se aggiunti un controllo ToolTip1, ad esempio, al form, a tutti gli altri controlli viene aggiunta la proprietà "Text on ToolTip1", ossia il testo da visualizzare tramite il tool tip appena creato.

PM Quote
Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 17:01
Martedì, 09/11/2010
Testo quotato

Postato originariamente da marco1:

Io non l'ho mai fatto! xo ci provo...

Codice sorgente - presumibilmente VB.NET

  1. Dim _SelectedIthem as integer
  2. Private Sub ListBox1_MouseMove(ByVal sender as object, byval e as system.windows.forms.mouseeventargs) handles ListBox1.MouseMove
  3. Dim _tmp as integer
  4. _tmp = math.troncate(e.y/Listbox1.IthemHeight) + ListBox1.TopIndex
  5. if _tmp => Listbox1.ithem.count then _selectedIthem = -1 : Exit Sub
  6. If _selectedIthem <> _tmp or _selectedithem = -1 then
  7. _selectedithem = _tmp
  8. Tooltip1.show(listbox1.ithems(_tmp).tostring,Listbox1, e.x+10,e.y,500)
  9. end if
  10. end sub



E solo un po rudimentale... ma funziona... molto probabilmente esiste gia qualcosa di pronto... ma questo è un buon inizio... :k: :k: :k:  


ci sono un sacco di h in piu in items poi troncate nn è cosi ma truncate corregendo questi errori il codice funziona visualizza la riga pero con dei problemi, tipo se clicco su una riga del listbox mi scompare tutto il testo per ricomparire appena muovo il mouse:(

Totem: come posso sfruttare quello che mi hai detto per raggiungere il risultato da me desiderato?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:44
Martedì, 09/11/2010
Aggiungi un controllo TooTip, gestisci l'evento MouseHover della listbox e in base all'elemento selezionato usa ToolTip.Show per visualizzare il tooltip.

PM Quote
Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 17:46
Martedì, 09/11/2010
io vorrei fare conparire il tooltip con il semplice passaggio del mouse senza che l utente selezioni la riga

Ultima modifica effettuata da Dyango il 09/11/2010 alle 17:50
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:44
Mercoledì, 10/11/2010
MouseHover si riferisce all'evento generato quando il mouse si ferma su un elemento. Puoi benissimo usare GetItemAt e PointToClient per ottenere l'elemento sotto il puntatore del mouse, su un po' di fantasia!

PM Quote
Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 16:49
Mercoledì, 10/11/2010
Testo quotato

Postato originariamente da Il Totem:

MouseHover si riferisce all'evento generato quando il mouse si ferma su un elemento. Puoi benissimo usare GetItemAt e PointToClient per ottenere l'elemento sotto il puntatore del mouse, su un po' di fantasia!


il listbox non dispone del metodo GetItemAt quindi ho provato con il listview, premetto che ci devo caricare dentro 13800 elementi circa, e ci mette parecchi minuti nel caricamento contro i pochi secondi del listbox quindi non è fattibile a mio avviso, anche se nel tooltip viene visualizzata correttamente la riga proprio come vorrei io

PM Quote