Oppure

Loading
31/05/09 15:58
dedalux
Salve a tutti,
nella mia applicazione in windows form ho bisogno di creare dei pulsanti personalizzati che cambino l'immagine all'evento mouseup, enter, leave, e down, come i comuni pulsanti.
Con photoshop ho creato le immagini che servono, pero nn saprei come abbinarle al tasto.
Se la metto di sfondo ad un controllo button, c'è sempre quel bordo che rimane, anche in aspetto flat o popup.
Ho provato a metterla come immagine di un label, ma nn esiste strecth, quindi dovrei creare un'immagine su misura per ogni label.

Inoltre se nn dovessi utilizzare un controllo button che contiene un testo, dovrei mettere il testo nell'immagine e creare sempre un'immagine per ogni pulsante, il che appesantirebbe all'infinito l'eseguibile.

Ho pensato di poter prendere l'immagine da una cartella da posizionare nella directory dell'exe, ma volendo che le immagini non siano accessibili?

Qualcuno ha qualche consiglio?
Grazie mille a tutti, buona domenica! ;)
aaa
31/05/09 16:24
Jeremy
Postato originariamente da dedalux:

Salve a tutti,
nella mia applicazione in windows form ho bisogno di creare dei pulsanti personalizzati che cambino l'immagine all'evento mouseup, enter, leave, e down, come i comuni pulsanti.
Con photoshop ho creato le immagini che servono, pero nn saprei come abbinarle al tasto.
Se la metto di sfondo ad un controllo button, c'è sempre quel bordo che rimane, anche in aspetto flat o popup.
Ho provato a metterla come immagine di un label, ma nn esiste strecth, quindi dovrei creare un'immagine su misura per ogni label.

Ciao.
Quale bordo rimane??
Hai provato ad impostare a 0 la proprietà BorderSize sotto FlatApparence nella scheda Aspetto della finestra delle proprietà del controllo Button??

Ho pensato di poter prendere l'immagine da una cartella da posizionare nella directory dell'exe, ma volendo che le immagini non siano accessibili?


Se vuoi renderle inaccessibili, puoi incorporarle come risorse del progetto.

Facci sapere...
Ciao
aaa
31/05/09 16:53
dedalux
Oddio non mi ero accorto che c'era la "+" su flatstyle! Perfetto, grazie mille!
Adesso faccio alcune prove e vi so dire grazie!! :love:
aaa
31/05/09 17:51
dedalux
Allora, io sono riuscito a far sparire il bordo, pero rimane un problema:
l'immagine del button è png e i bordi arrotondati, quindi ha delle zone alpha.
L'immagine impostata di background iniziale è apposto, come quella del pulsante disabilitato che vine impostata via codice da una checkbox, mentre quando passo sopra o clicco col mouse, si vedono gli angolini bianchi, mentre dovrebbero essere invisibili e mostrare la parte dietro del form...

in pratica sono solo le immagini di MouseDown e MouseEnter che mostrano gli angolini, al MouseLeae spariscono.... :O

edit: succede anche cambiando l'abbinamento evento-immagine, quindi non un problem della .png

re-edit: RISOLTO, bastava impostare le propietà MouseOver/DownBackColor a Transparent!

Grazie a tutti, spero possa servire a molti, buon ponte!:k:
Ultima modifica effettuata da dedalux 31/05/09 18:16
aaa
31/05/09 19:04
dedalux
Gente (lol) nuovo problemuccio, se il pulsante richiama una messagebox, lo stato attivo passa ad essa e il pulsante nel form dietro viene evidenziato dal solito bordo bianco.. :-|
Se ignoro la messagebox e restituisco lo stato attivo al form il bordo sparisce, mentre se seleziono un altro componente tipo un'altro pulsante e ritorno nella msgbox, torna visibile il bordo ma sull'ultimo controllo selezionato, ossia quello che è focused nel form che ha generato la finestra di messaggio... :d:d:d
Se volete posto uno screenshot
Ultima modifica effettuata da dedalux 31/05/09 19:06
aaa
31/05/09 19:11
Jeremy
Postato originariamente da dedalux:

Gente (lol) nuovo problemuccio, se il pulsante richiama una messagebox, lo stato attivo passa ad essa e il pulsante nel form dietro viene evidenziato dal solito bordo bianco.. :-|
Se ignoro la messagebox e restituisco lo stato attivo al form il bordo sparisce, mentre se seleziono un altro componente tipo un'altro pulsante e ritorno nella msgbox, torna visibile il bordo ma sull'ultimo controllo selezionato, ossia quello che è focused nel form che ha generato la finestra di messaggio... :d:d:d
Se volete posto uno screenshot


Prova a gestire l'evento MouseUp anzichè l'evento Click del Button.

Facci sapere...
Ciao
aaa
31/05/09 19:18
dedalux
In che senso scusa?
Io clicco sul pulsante, e fa una cosa in determinate condizioni, se queste condizioni necessarie mancano mi torna un messagio.
Intendi di fargli fare questa cosa al mouseup invece che al click?
aaa
31/05/09 19:33
Jeremy
Postato originariamente da dedalux:

In che senso scusa?
Io clicco sul pulsante, e fa una cosa in determinate condizioni, se queste condizioni necessarie mancano mi torna un messagio.
Intendi di fargli fare questa cosa al mouseup invece che al click?


Esatto .... invece di gestire l'evento Click, gestisci l'evento MouseUp .... così il button si è già *sistemato*....non è ancora premuto.

Facci sapere...
Ciao
aaa