Newsgroup: it.comp.lang.visual-basic
Titolo: ToolTipText Question!

Salve a tutti.
Io ho un controllo ListView.
Ogni ListItem all'interno ha la proprietą tooltiptext.
In questi tooltip text io ci salvo delle stringhe , ma poi devo poter
decidere se farle visualizzare oppure no in base alla scelta dell'utente.
Purtroppo ho bisogno che le stringhe all'interno delle tooltiptext non
vengano cancellate.
Esiste qualche api o qualche comando che mi permette di nascondere o far
visualizzare le tooltip text di tutta la listview o anche di ogni singolo
listitem?
Grazie
Pivanti Marco

listitem?
Soluzione più semplice e veloce (ma non per questo la migliore, sta a te
decidere... :-P):
imposti i tooltio nella proprietà .Tag dei singoli controlli:
- voglio visualizzare i tooltip: for each controllo, .tooltip=.tag :
.tag=""
- non voglio + visualizzare i tooltip: for each controllo, .tag=.tooltip
: .tooltip=""
Così puoi attivare / disattivare a piacere anche solo i tooltip di un
singolo controllo...
Ciao,
Moreno
#sirri#@#
morenosoft.com#
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------


Grazie moreno!
Peccato che sono io un deficente e mi sono dimenticato di specificare che il
Tag lo uso già per altri valori.
Purtroppo sono a corto di priprietà da usare e cerco di non dover utilizzare
strutture di dati esterne per non dover riscrivere mezzo codice!
Mi basterebbe solo un subclassing per nascondere e visualizzare i
tooltiptext!
Grazie!

tooltiptext!
Già... subclassare ciascun controllo... mmm... mi sa che forse la cosa
più semplice sia quella di utilizzare un array che si memorizza tutti i
tooltip, quindi assegnarli o meno a seconda delle esigenze...
In alternativa, se non ricordo male, se utilizzi la SetCapture,
automaticamente inibisci i tooltip, ma.... ne vale la pena?


tooltiptext!
Il subclassing ti renderebbe infernale la vita in debug.
Puoi fare tutto con vb, basta un po' di fantasia ...
Una strada, ma non l' unica, e' quella di crearti una collection
che abbia come items il testo dei tooltips e come chiavi il nome dei controlli.
Sotto la firma ho messo un piccolo esempio.
hth, hal
------------------------------------------
Ingredienti: 
1) un form con dentro dei controlli a caso;
2) copiare il seguente codice:
------ inizio codice ----
Option Explicit
Private m_colTooltips As Collection
Private mi_assegna As Boolean
Private Sub Form_DblClick()
    mi_assegna = Not mi_assegna
    AssegnaTooltips mi_assegna
End Sub
Private Sub Form_Load()
    '// mettiamo dei tooltips di prova
    '// per far girare l' esempio
    On Local Error Resume Next
    Dim ctl As Control
    For Each ctl In Me.Controls
        ctl.ToolTipText = "Tooltip di " & ctl.Name
    Next ctl
    '// salviamo i tooltips nella collection
    CaricaTooltips
    '// ripuliamo (mi_assegna = false)
    AssegnaTooltips mi_assegna
End Sub
Private Sub AssegnaTooltips(ByVal a_Imposta As Boolean)
    Dim ctl As Control
 
    On Local Error Resume Next
 
    If (a_Imposta = False) Then
        For Each ctl In Me.Controls
            ctl.ToolTipText = vbNullString
        Next ctl
        Exit Sub
    End If
 
    For Each ctl In Me.Controls
        ctl.ToolTipText = m_colTooltips(ctl.Name)
    Next ctl
 
End Sub
Private Sub CaricaTooltips()
    On Local Error Resume Next
 
    Dim ctl As Control
 
    Set m_colTooltips = New Collection
    For Each ctl In Me.Controls
        m_colTooltips.Add ctl.ToolTipText, ctl.Name
    Next ctl
End Sub
----- fine codice ------
3) Premere F5 ;-)
Nota: con il doppio click sul form si abilita/disabilita la visualizzazione 
dei tooltips.