Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    31

    [C#]: Cursori & PictureBox

    Ciao a tutti!
    Ho due domande (basta che rispondiate a una per risolvermi ogni problema!)

    1) Ho una grande PictureBox e voglio che il cursore, su taluni punti della stessa, divenga di tipo Hand. C'è un modo efficiente per farlo? A me era venuto in mente di usare l'evento MouseMove ma la vedo impraticabile dato che questi punti dovrebbero essere un centinaio.

    2) Ho una PictureBox piccola e una PictureBox grande, una sopra l'altra. Vorrei che all'inizio la PictureBox piccola non si veda, ma si veda solo quella grande. Vorrei che andando col mouse sull'area in cui c'è la PictureBox piccola il cursore divenga di tipo Hand. Se poi l'utente preme lì sopra, la PictureBox piccola deve apparire sopra quella grande.

    Avete idee?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    31
    non si può fare allora?!?

  3. #3
    Io per un sistema di CAD in C# ho fatto così:

    1) ho creato una classe che contiene le coordinate di una generica regione sulla PictureBox, quindi con X, Y, Width ed Height ed una funzione che mi dice se una generica posizione (X, Y) è all'interno del rettangolo dell'oggetto

    2) Nella form ho una PictureBox e una lista di oggetti della mia classe tutti logicamente caricati con dei valori sensati di X, Y ecc ecc relativi alla PictureBox.

    3) Nel mouseMove della PictureBox io faccio un foreach su tutti gli oggetti della lista. Se chiamando la funzione di uno qualsiasi degli oggetti della lista che mi dice se il valore dell'oggetto e.Position (che ti restituisce la posizione del Mouse sulla Picture) è all'interno e mi restituisce true allora io visualizzo il cursore a manina, altrimenti quello di default.

    Poi ci sono un paio di controlli da fare ma vedrai tu insomma in base al tuo caso.

    Vedi se può tornarti utile. Ciao!
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    31
    sinceramente l'avevo pensato anch'io, ma dato che in questo modo ogni volta che muovo il mouse sulla figura (che rappresenta lo sfondo della mia applicazione) dovrei fare circa 150 confronti di posizioni, non vorrei si rallentasse tutto il programma.

    a te funziona bene?

  5. #5
    Nessun problema almeno finora. Ho provato 110 oggetti distinti e non ha mai rallentato...
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    31
    Ho provato ad implementare quello che mi hai consigliato ma ho un problema.
    Premetto che la PictureBox principale è più grande rispetto al pannel nella quale è posta, tanto da dover usare le scroll bar per vedere la parte inferiore.
    Ciò che accade è questo: riesco a far cambiare il cursore soltanto nelle aree superiori! Quando faccio scendere la scroll bar non funziona più nulla! Se la riporto di nuovo in alto e al massimo funziona!

    A te è capitato qualcosa di simile? A cosa è dovuto e soprattutto: come posso risolverlo?

  7. #7
    Certo, devi considerare che usando le scrollbar tu cambi la posizione relativa dei controlli quindi ti viene sfasato tutto di quel dx della scrollbar. Quando vai a confrontare se la posizione è giusta devi considerare anche quel dx. Prova poi fammi sapere.

    Ciao
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.