
bibimeravilla96 (Normal User)
Pro
    
Messaggi: 79
Iscritto: 02/01/2012
|
Salve allora , avrei un problema con un picture box che starei usando come bottone, o meglio gli faccio svolgere un comando determinato, comunque il mio prblema sta nel fatto che vorrei che una volta cliccato , siccome ho fatto si che se gli si passa sopra con il mouse cambia immagine e anche se si clicca, vorrei dunque che una volta cliccato l' immagine che appare quando si clicca rimanga fino a quando non si clicca su un altra immagine (o nel mio caso su un bottone).
Grazie
|
|

GN (Member)
Guru
    
Messaggi: 772
Iscritto: 30/04/2011
|
Beh, immagino che per far cambiare l'immagine al passaggio del mouse tu abbia gestito gli eventi MouseEnter e MouseLeave; ti basta quindi dichiarare una variabile booleana (per esempio "cliccato"), da settare a True al clic dell'immagine, poi modificare il codice di MouseLeave in modo che rimetta l'immagine originale solo se "cliccato" (o comunque la variabile che hai scelto) è False. Poi, per reinserire l'immagine dopo il clic su un'altro bottone, nell'evento clic di ogni altro pulsente setti la variabile a False e rimetti l'immagine originale.
Se devi farlo con diverse PictureBox puoi anche usare la proprietà Tag di ogni controllo invece che una variabile a parte in modo da non doverne dichiarare molte.
|
|

bibimeravilla96 (Normal User)
Pro
    
Messaggi: 79
Iscritto: 02/01/2012
|
Credo di ave capito grazie....
|
|

bibimeravilla96 (Normal User)
Pro
    
Messaggi: 79
Iscritto: 02/01/2012
|
Non riesco a risolvere...volevo aggiungere però che ogni bottone va ad aprire una tab page all' interno di un tabcontrol....
|
|

GN (Member)
Guru
    
Messaggi: 772
Iscritto: 30/04/2011
|
Postato originariamente da bibimeravilla96:
Non riesco a risolvere...volevo aggiungere però che ogni bottone va ad aprire una tab page all' interno di un tabcontrol.... |
Questo non centra niente, magari apri un'altro topic. |
|

bibimeravilla96 (Normal User)
Pro
    
Messaggi: 79
Iscritto: 02/01/2012
|
pensavo potessi sfruttare le funzioni del tabcontrol per facilitare le cose ma è peggio...e non so minimamentecome fare le ho provate tutte...come posso fare?
|
|

GN (Member)
Guru
    
Messaggi: 772
Iscritto: 30/04/2011
|
Postato originariamente da bibimeravilla96:
pensavo potessi sfruttare le funzioni del tabcontrol per facilitare le cose ma è peggio...e non so minimamentecome fare le ho provate tutte...come posso fare?
|
Il tabcontrol non centra niente... come ho già detto ti basta sfruttare la proprietà Tag di ogni PictureBox. Ti faccio un esempio:
Codice sorgente - presumibilmente VB.NET |
'Hai 4 picturebox: pb1, pb2, pb3, pb4 contenute in un Panel p e le immagini img1 e img2 (rispettivamente per lo stato normale e per quello selezionato) 'Gestisci con un metodo solo tutti i controlli Private Sub pb_MouseEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pb1.MouseEnter, pb2.MouseEnter, pb3.MouseEnter, pb4.MouseEnter 'Ottieni la picturebox che ha scatenato l'evento Dim pb As PictureBox = CType(sender, PictureBox) 'cambi l'immagine pb.Image = img2 End Sub Private Sub pb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pb1.Click, pb2.MouseEnter, pb3.Click, pb4.Click 'Setti le proprietà Tag del controllo in modo che si "ricordi" che è stato premuto sender.Tag = True 'reimposti i Tag degli altri controlli a False For Each pb As Control In p.Controls pb.Tag=False Next End Sub Private Sub pb_MouseLeave(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pb1.MouseLeave, pb2.MouseLeave, pb3.MouseLeave, pb4.MouseLeave 'Ottieni la picturebox che ha scatenato l'evento Dim pb As PictureBox = CType(sender, PictureBox) 'cambi l'immagine solo se il controllo non è stato cliccato If pb.Tag = False pb.Image = img2 End If End Sub
|
Non ho testato il codice, quindi fammi sapere se va. |
|

bibimeravilla96 (Normal User)
Pro
    
Messaggi: 79
Iscritto: 02/01/2012
|
Grazie lo provo e ti faccio sapere...
|
|