A me sembra :-\ che tu voglia far apparire in una sorta di Tooltip il testo di volta in volta contenuto in un oggetto.
Se non ho errato, allora io penso che tu possa utilizzare la proprietà .tooltip medesima dell'oggetto in questione.
Poniamo di avere una TextLabel:
Public Sub Form_Open()
' Non appena il mouse entra nella "TextLabel",
' il "Tooltip" della "TextLabel" assume il testo contenuto nella "TextLabel" medesima:
TextLabel1.Tooltip = TextLabel1.Text
End
...o no ? :-X
Ricorda che anche la proprietà .Tooltip supporta diversi comandi del protocollo html.
Potresti, infatti, ottenere - per esempio - il testo del .Tooltip con il colore da te prescelto, ma addirittura contenere una immagine, inserire una tabella colorata, raccogliere direttamente i risultati di operazioni matematiche o mostrare al proprio interno il Tooltip - dopo che quest'ultimo è stato fatto apparire - di un altro oggetto:
Public Sub TextLabel1_Enter()
TextLabel1.Tooltip = "<TABLE border=2 bgcolor=#FFA400>" &
"<TR><TD><IMG src=/percorso/della/mia/immagine.xxx></td>" &
"<TD bgcolor=#FFFF00 >TextLabel1.Text< /td></tr>" &
"<TR><TD>" & Str(5 + 1) & "</td><TD>" & TextArea1.Tooltip & "</td>" &
"</tr></table>"
End
Ho provato a cambiare il testo del tooltip in base al contenuto di una cella della GridView: il tooltip è inizializzato vuoto, poi faccio doppio click su una cella e così imposto il contenuto della tooltip.
Allo stesso tempo abilito un timer: quando scatta il timer (dopo 5 secondi) voglio far sparire il tooltip, quindi mettro GridView1.tooltip = "".
Ma non succede niente...
Non so se ho interpretato bene il tuo problema. Prova questo:
Private a As Byte
Public Sub Form_Open()
With GridView1
.Rows.Count = 2
.Columns.Count = 2
End With
GridView1[0, 0].Text = "alibaba"
GridView1.Tooltip = GridView1[0, 0].Text
With Timer1
.delay = 1000
.Start
End With
End
Public Sub Timer1_Timer()
Inc a
If a = 4 Then GridView1.Tooltip = " "
End
Dopo che il programma si è aperto, entro con il puntatore del mouse nella GridView, e così appare il ToolTip con la scritta presente nella cella 0,0 . Dopo 4 secondi il ToolTip perde la scritta e si riduce in lunghezza, però non sparisce.
Ovviamente la lunghezza del ToolTip può essere gestita inserendo vari spazi.
Ho provato a far sparire completamente il ToolTip in anticipo, come mi sembra volevi effettivamente tu, eliminando anche l'unico spazio che avevo messo in questa riga qua: If a = 4 Then GridView1.Tooltip = " "
ed ho posto 2 nell' IF anziché 4.
Pertanto, la nuova riga è diventata così:
If a = 2 Then GridView1.Tooltip = ""
A me è sparito con anticipo regolarmente. Ed infatti, se riduco ulteriormente il valore a 1, il ToolTip non riesce neppure ad apparire.
Sono riuscito ad ottenere quell'effetto con la funzione Sleep.
Esempio:
Public Sub Button1_Enter()
Sleep 5
End
Ma purtroppo è bloccante, e quindi del tutto inadatta.
Se vuoi, dunque, ottenere quell'effetto desiderato, penso che dovrai optare per l'uso dell'oggetto Window.