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
Visual Basic 6 - help con mouse e listbox
Forum - Visual Basic 6 - help con mouse e listbox

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
super rambo (Normal User)
Pro


Messaggi: 135
Iscritto: 04/06/2008

Segnala al moderatore
Postato alle 18:06
Giovedì, 11/09/2008
salve, ho una listbox e mi servirebbe che quando il mouse è al di fuori della list la proprietà visible della list va a false. so che devo usare l sub mouse_move ma non so come.. come posso fare?? grazie

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 18:22
Giovedì, 11/09/2008
usa mouse_move della form

cioè quando il mouse si muove nella form allora rendi invisibile la lista ;)

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 18:29
Giovedì, 11/09/2008
Con Form_MouseMove identifica le coordinate del mouse e se identificano un punto al di fuori della list imposta la proprieta' visible di quest'ultima a false

PM Quote
Avatar
super rambo (Normal User)
Pro


Messaggi: 135
Iscritto: 04/06/2008

Segnala al moderatore
Postato alle 18:50
Giovedì, 11/09/2008
grazie dell'auito ma c'è un piccolo problema il form è coperto pienamente di oggetti e quindi la proprietà mouse_move del form non può andare. ho fatto così:
Codice sorgente - presumibilmente VB.NET

  1. Dim cordx As Single 'Dichiaro le variabili da usare (X)
  2. Dim cordy As Single 'Dichiaro le variabili da usare (Y)
  3.  
  4.  
  5. Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  6. cordx = X
  7. cordy = Y
  8.  
  9. Text1 = X
  10. Text2 = Y
  11. End Sub


il codice funziona, quando muovo il mouse nella list i numeri nelle text cambiano però appena vado fuori si fermano. mi era venuto in mente di fare un timer che controllasse che se nelle text c'erano i numeri di quando esco dala list metteva la proprietà visible su false, ma i numeri delle text cambiano in base a dove esco dalla list (sopra, sotto ecc...) come potrei fare?? grazie!!

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 19:07
Giovedì, 11/09/2008
Testo quotato

Postato originariamente da super rambo:

grazie dell'auito ma c'è un piccolo problema il form è coperto pienamente di oggetti e quindi la proprietà mouse_move del form non può andare. ho fatto così:
Codice sorgente - presumibilmente VB.NET

  1. Dim cordx As Single 'Dichiaro le variabili da usare (X)
  2. Dim cordy As Single 'Dichiaro le variabili da usare (Y)
  3.  
  4.  
  5. Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  6. cordx = X
  7. cordy = Y
  8.  
  9. Text1 = X
  10. Text2 = Y
  11. End Sub


il codice funziona, quando muovo il mouse nella list i numeri nelle text cambiano però appena vado fuori si fermano. mi era venuto in mente di fare un timer che controllasse che se nelle text c'erano i numeri di quando esco dala list metteva la proprietà visible su false, ma i numeri delle text cambiano in base a dove esco dalla list (sopra, sotto ecc...) come potrei fare?? grazie!!



allora: intanto i numeri all'interno delle textbox non "cambiano" quando esci dalla listbox perchè la parte del codice che fa aggiornare le textbox l'hai messa all'interno di list1_mousemove.
Poi non capisco cosa intendi dire con questo
Testo quotato

Postato originariamente da super rambo:

grazie dell'auito ma c'è un piccolo problema il form è coperto pienamente di oggetti e quindi la proprietà mouse_move del form non può andare.


Voglio dire...non capisco perchè "non può andare".
Infine i numeri cambiano se esci dalla list sopra o sotto perchè list1_mousemove aggiorna le coordinate finchè tu rimani all'interno della list1 e quindi viene scrito sulle textbox le coordinate del tuo mouse nell'ultimo istante in cui sei rimasto dentro la list1.
Ora faccio delle prove di codice e riposto.
PS: se non hai capito qualcosa fammelo sapere :k:

PM Quote
Avatar
super rambo (Normal User)
Pro


Messaggi: 135
Iscritto: 04/06/2008

Segnala al moderatore
Postato alle 19:15
Giovedì, 11/09/2008
per la list mi sono spiegato male ed è come dici tu, ma se io metto il codice in form_mousemove non funziona perchè nel form c'è un webbrowser che occupa tutta la pagina e l'evento mouse_move nel webbrowser non c'è quindi come faccio???

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 19:41
Giovedì, 11/09/2008
Esiste un'API in grado di aiutarti.
Dichiarazioni:
Codice sorgente - presumibilmente VB.NET

  1. Private Type POINTAPI
  2.     x As Long
  3.     y As Long
  4. End Type
  5. Private Declare Function GetCursorPos Lib "user32" _
  6.     (lpPoint As POINTAPI) As Long
  7. Private Declare Function ScreenToClient Lib "user32" _
  8.     (ByVal hwnd As Long, lpPoint As POINTAPI) As Long



In un timer per ottenere le coordinate del mouse rispetto al form:
Codice sorgente - presumibilmente VB.NET

  1. Dim pt As POINTAPI
  2.     Call GetCursorPos(pt)
  3.     Call ScreenToClient(Me.hwnd, pt)
  4.     Debug.Print "Screen Coords: ", pt.x, pt.y


Adesso ti basta aggiungere un If al timer in modo che identifichi quando il mouse esce dalla list1 :k:

Ultima modifica effettuata da ruggy94 il 11/09/2008 alle 19:41
PM Quote
Avatar
super rambo (Normal User)
Pro


Messaggi: 135
Iscritto: 04/06/2008

Segnala al moderatore
Postato alle 19:51
Giovedì, 11/09/2008
ho preso un punto al di fuori della list e ho fatto l'if.. funziona ma l'utente dovrebbe passare proprio in quel punto per mettere la proprietà visible a fale... tu intendevi questo o ho sbagliato io?? Grazie!!

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 19:52
Giovedì, 11/09/2008
Testo quotato

Postato originariamente da super rambo:

salve, ho una listbox e mi servirebbe che quando il mouse è al di fuori della list la proprietà visible della list va a false. so che devo usare l sub mouse_move ma non so come.. come posso fare?? grazie



segui il consiglio di ruggy94, anche perchè non puoi usare l' evento mousemove della listbox per farla riapparire

trovate le coordinate del mouse, ti assicuri che siano comprese nelle dimensioni della listbox

è sufficiente una if else endif con 4 condizioni

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo