Immagini & Pulsanti

venerdì 14 novembre 2008 - 12.11

DkSw Profilo | Junior Member

Giorno a tutti.
Volevo chiedervi se potevate aiutarmi con un paio di problemi in vb.net.

1 ----------------------------------------------------------------------
Ho creato in photoshop delle immagini png con sfondo trasparente da usare come pulsanti.
Il problema è che le picturebox dove le ho caricate hanno tutti gli eventi necessari(hovering, click, doubleclick...), ma non sono "tabbabili".
Insomma, quando premo tab passa dal controllo selezionato al successivo ignorando le picturebox.

E' possibile risolvere il problema? Oppure, come è possibile personalizzare un controllo button in modo che sia visibile solo l'immagine?

2 ----------------------------------------------------------------------
Al momento queste picturebox hanno la proprietà backcolor=trasparent, in modo che lo sfondo lo calcoli dall'immagine che ho utilizzato come background image nel pannel su cui si trovano.
Il problema è che al termine di un'azione di ridimensionamento del form si verifica un fastidioso refresh "lampeggiante" che per 3 secondi continua a far sparire, riposizionare e rendere di nuovo visibili le varie picturebox...soluzioni?

----------------------------------------------------------------------
P.s. In termini di risorse mi converebbe sostituire l'immagine del gradiente del pannel con un gradiente vero e proprio personalizzando l'evento onPaint. Ne ho trovato un esempio qui:
http://www.getdotnetcode.com/nexDotNet/030005H2GradientBg4WinFormVB/H2GradientBg4WinFormVB.htm
ma come è possibile disegnarlo dall'alto al basso, piuttosto che da sinistra a destra?

Grazie in anticipo per l'aiuto.

Anonimo Profilo | Senior Member

>E' possibile risolvere il problema? Oppure, come è possibile
>personalizzare un controllo button in modo che sia visibile solo
>l'immagine?

Devi impostare la proprietà FlastStyle su Flat e poi la proprità BorderSize (sotto FlatApparence) su 0

>Il problema è che al termine di un'azione di ridimensionamento
>del form si verifica un fastidioso refresh "lampeggiante" che
>per 3 secondi continua a far sparire, riposizionare e rendere
>di nuovo visibili le varie picturebox...soluzioni?

Il flickering è un problema comune quando hai molti controlli nel tuo form.
Potresti provare ad usare il DoubleBuffering, ti scrivo un paio di istruzioni in c# (in vb.net dovrebbe essere analogo), da mettere dopo il metodo InitializeComponent()

SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.DoubleBuffer, true);

Fammi sapere se ti è stato utile, a me lo è stato

DkSw Profilo | Junior Member

Grazie mille x il pulsante...
Non avevo mai cambiato il flatstyle...così viene proprio come lo volevo!

Per il secondo problema, niente...
Nell'esempio del p.s. che avevo aggiunto prima ho notato lo stesso codice che mi hai dato tu, ma non ottengo cambiamenti...

Riporto il ps...
P.s. In termini di risorse mi converebbe sostituire l'immagine del gradiente del pannel con un gradiente vero e proprio personalizzando l'evento onPaint. Ne ho trovato un esempio qui:
http://www.getdotnetcode.com/nexDotNet/030005H2GradientBg4WinFormVB/H2GradientBg4WinFormVB.htm
ma come è possibile disegnarlo dall'alto al basso, piuttosto che da sinistra a destra?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5