Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
RichTextBox trasparente
lunedì 29 novembre 2004 - 12.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Peppe
Profilo
| Newbie
24
messaggi | Data Invio:
lun 29 nov 2004 - 12:36
Ciao a tutti!! Allora, come da vostro suggerimento sto passando da TextBox a RichTextBox. Ma devo farla trasparente pero'.. Girando un po' per la rete (
http://www.codeproject.com/useritems/TransparentTextBox.asp
) ho trovato qualcosa..
Riporto il codice:
class TransparentControl : Control
{
public TransparentControl()
{
base.SetStyle( ControlStyles.UserPaint, true );
base.SetStyle( ControlStyles.DoubleBuffer, true );
base.SetStyle( ControlStyles.SupportsTransparentBackColor, true );
}
}
class TransparentRichTextBox : RichTextBox
{
public TransparentRichTextBox()
{
base.ScrollBars = RichTextBoxScrollBars.None;
}
override protected CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x20;
return cp;
}
}
override protected void OnPaintBackground( PaintEventArgs e )
{
}
}
Io ho creato una semplicissima winform per vedere come funzionava questo codice qui.. E in realta' lo sfondo e' trasparente! Pero' non ho capito come usare la classe TransparentControl. In pratica ho creato la RTB mettendo
private RTF_transparent_prova.TransparentRichTextBox richTextBox1;
dentro la classe form1, e mettendo
this.richTextBox1 = new TransparentRichTextBox();
dentro InitializeComponent() per creare la RTB trasparente. L'effetto che ho e'che pero' in fase di scrittura il testo si sovrappone diventando illeggibile! Solo se lo seleziono col mouse cliccandoci 2 volte sopra allora il testo viene ridisegnato e si legge correttamente! Come devo fare per far si' che invece venga ridisegnato automaticamente ad ogni inserimento di ciascun carattere? Secondo me la classe TransparentControl andra' usata da qualche parte, ma non so dove! Mi dareste una mano per favore? Se non sono statio chiaro ditemelo e cerchero' di esserlo maggiormente..
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 29 nov 2004 - 22:29
Probabilmente è scritto nell'articolo che hai riportato ?
Se i subclassing non sono fatti correttamente si possono avere problemi simili a quelli che hai descritto.
ciao
david
Peppe
Profilo
| Newbie
24
messaggi | Data Invio:
lun 29 nov 2004 - 22:46
Ma praticamente (a livello di codice) mi sapresti dire che devo fare? Nell'articolo che ho riportato ci sono scritte solo le cose che ho riportato io..niente di interessante di piu'..
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 29 nov 2004 - 23:01
:) Se l'avessi saputo te l'avrei detto.
Non ci sono molti modi per fare un controllo trasparente specialmente un textbox. Si può prendere la parte dietro e ridisegnarla, ma tu devi controllare tramite l'evento OnPaint tutte le volte che il controllo viene ridisegnato e agire di conseguenza.
Insomma non è una cosa facile. In passato ho fatto cose simili però ci si mette parecchio tempo perchè bisogna conoscere molto bene il subsystem di windows come funziona, come si gestiscono i messaggi delle finestre/controlli ecc.
ciao
david
Torna su
Stanze Forum
Elenco Threads
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 !