Newsgroup: it.comp.lang.visual-basic
Titolo: LOST_FOCUS


Scusami mi sono espresso male. Io ho scritto una sub semplicissima di questo
tipo:
Private Sub Form_Load()
  Text1.BackColor = Me.BackColor
End Sub
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
  Text1.BackColor = &H80000005
End Sub
che al passaggio del mouse rende bianco la TextBox in questione. Ma non
riesco a trovare
il modo di ridare il colore di sfondo originale ALL' USCITA del mouse dall'
oggetto un po come
avviene in HTML per gli eventi del mouse...
Infatti il FOCUS non c'entra nulla (si attiva solo selezionando la TextBox
da tastiera o Click del
mouse)...
GRAZIE ANCORA... 
ERIB...@SUPEREVA.IT

 mouse)...
Prova sull'evento MouseMove del Form...

 ha scritto nel messaggio
news:sDKC6.29069$r67.6...@news2.tin.it...

se si esce velocemente dalla casella di testo e si entra in un altro oggetto
che non sia il form
non riesco a vedere l'evento

 non riesco a vedere l'evento
Annulla allora l'effetto nel MouseMove di un qualsiasi altro controllo. Fai in modo di
ricordare quale sia l'ultimo controllo che aveva l'effetto evidenziato e resetti il suo
stato a non-evidenziato quando viene generato l'evento MouseMove di un altro controllo (o
del form).
Option Explicit
Private ctrl as Control
sub reset(ctrlCorrente as Control)
    if not ctrl is nothing then
       'disevidenzi l'ultimo controllo: ctrl
    end if
    set ctrl=ctrlCorrente
    ' evidenzi il controllo ctrlCorrente
end sub
o qualcosa del genere (devi gestire diversamente sul mousemove del form, disevidenziando
l'ultimo controllo e impostando a nothing la variabile "ctrl").
sub Form_MouseMove(...)
    if not ctrl is nothing then
       'disevidenzi l'ultimo controllo: ctrl
    end if
    set ctrl=Nothing
end sub
esempio:
sub Text1_MouseMove()
    reset(me.activecontrol)
end sub
sub Label1_MouseMove()
    reset(Label1)
end sub
Non l'ho provato, ma ho scritto direttamente qui, quindi dovrai provare e provare,
provare, provare, provare, provare, provare... hhhhhhhhh... :)

non riesco a vedere l'evento
'-----------------------------------------------------------
'
' Esempio di come gestire gli eventi MouseEnter/MouseExit
'
' [FAQ] it.comp.lang.visual-basic
'
'-----------------------------------------------------------
' Autore: Fabio Zanetta (Zanna)
'-----------------------------------------------------------
'
' (1) Copiare il seguente codice in un form vuoto.
' (2) Aggiungere uno o più controlli Command1 (un array)
' (3) Aggiungere un controllo Picture1
' (4) Aggiungere una ListBox List1
'
'-----------------------------------------------------------
Option Explicit
Private Declare Function GetCapture Lib "user32" () As Long
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As
Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Function MouseOver(Ctrl As Control, ByVal X As Single, ByVal Y As Single) As
Long
    ' Restituisce
    ' -1 : esce
    '  0 : dentro
    '  1 : entra
    If (GetCapture <> Ctrl.hwnd) Then
        Call SetCapture(Ctrl.hwnd)
        MouseOver = 1
    Else
        If ((X < 0 Or X > Ctrl.Width) Or (Y < 0 Or Y > Ctrl.Height)) Then
            Call ReleaseCapture
            MouseOver = -1
        Else
            MouseOver = 0
        End If
    End If
End Function
Private Sub Command1_MouseMove(Index As Integer, Button As Integer, Shift As
Integer, X As Single, Y As Single)
    Select Case (MouseOver(Command1(Index), X, Y))
    Case -1
        List1.AddItem "Uscito da Command1(" & Index & ")", 0
    Case 1
        List1.AddItem "Entrato in Command1(" & Index & ")", 0
    Case Else
        List1.AddItem "Dentro Command1(" & Index & ")", 0
    End Select
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
    Select Case (MouseOver(Picture1, X, Y))
    Case -1
        List1.AddItem "Uscito da Picture1", 0
    Case 1
        List1.AddItem "Entrato in Picture1", 0
    Case Else
        List1.AddItem "Dentro Picture1", 0
    End Select
End Sub