TextBox avec défilement du texte

Messages postés
68
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
23 février 2011
- - Dernière réponse : Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
- 22 févr. 2006 à 03:38
Bonjour à tous,
J'aimeris savoir comment fait on pour faire défiler le texte dans une textbox simple, pas de multiligne.
Je voudrais que le texte défile lorsque qu'il dépasse la textbox

Merci d'avance pour votre aide.
Afficher la suite 

3 réponses

Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
0
Merci
Salut,
tu as un exemple simple à cet adresse : ici
je te conseil de créer un control qui herite de textbox
si j'ai le tps je mettrai un code exemple à dispo.

<hr>ZeBobo5 - http://blogs.msdn.com/zebobo5/
N'oubliez pas de cloturer votre post.
Commenter la réponse de zebobo5
Messages postés
68
Date d'inscription
jeudi 5 janvier 2006
Statut
Membre
Dernière intervention
23 février 2011
0
Merci
C'est gentil pour ton exemple mais je l'avais deja trouver mais vu que moi et l'anglais sa fais 2 ben je comprend pas les explications, donc si tu pouvait juste me donner une idée après je réaliserai la chose, par exemple moi je pensais ajouter a chaque fois un espace au bout de mon texte ce qui le décalerait et donnerait le defilement. enfin je c pa trop alor j'atten ta réponse.
Commenter la réponse de wald39
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
28
0
Merci
Salut, un exemple avec un texte qui défile sur lui même dans la barre de titre et un autre texte qui défile le long de la forme, c'est le même principe pour un TextBox mais à mon avis dans ce cas là mieux vaut utiliser un Label.

public class MainForm : Form
{
private const string s = "Horizontal scrolling...";
private StringBuilder sb = new StringBuilder( s );

private int speed = 100;
private int smooth = 1;
private int offset = 0;


public MainForm( ) : base( )
{
/*this.SetStyle
(
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.DoubleBuffer,
true
);*/


Timer t = new Timer( );
t.Interval = speed;
t.Tick += new EventHandler( Timer_Tick );
t.Start( );
}


private void Timer_Tick( object sender, EventArgs e )
{
this.Text = sb.Insert( sb.Length, sb.ToString( 0, smooth ) ).Remove( 0, smooth ).ToString( );


this.Invalidate( );
}


protected override void OnPaint( PaintEventArgs e )
{
// base.OnPaint( e );


Graphics g = e.Graphics;


SizeF size = g.MeasureString( s, this.Font );


offset += smooth;
if ( offset > this.ClientSize.Width )
offset = -( int )size.Width;


float x = this.ClientSize.Width - ( size.Width + offset );
float y = this.ClientSize.Height - size.Height;


g.DrawString( s, this.Font, Brushes.Black, x, y );
}


[ STAThread ]
private static void Main( )
{
Application.Run( new MainForm( ) );
}
}
Commenter la réponse de Lutinore