Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation d'une textbox

8 réponses
Avatar
Christophe Jacquelin
Bonjour,

Comment se servir d'une textbox comme une fenêtre d'affichage dans
laquelle on envoie des chaines de caractères qui défilent.

Merci,
Christophe,

8 réponses

Avatar
ng
Salut,

Voici un exemple de code :

'1 TextBox : Text1
' Propriété MultiLine à True
' Scrollbars à 2 - Vertical
' Locked à True
' Text vide

Public Sub AjoutLigne(sLigne As String)
'ajoute la ligne
Text1.Text = Text1.Text & sLigne & vbCrLf
'curseur à la fin
Text1.SelStart = Len(Text1.Text)
End Sub

Private Sub Command1_Click()
Call AjoutLigne("> Test !")
End Sub


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Christophe Jacquelin wrote:
Bonjour,

Comment se servir d'une textbox comme une fenêtre d'affichage dans
laquelle on envoie des chaines de caractères qui défilent.

Merci,
Christophe,


Avatar
François Picalausa
Bonjour/Soir,

Tu peux essayer ceci:

TextBox.Text = TextBox.Text & "Nouvelle Ligne" & vbNewLine
TextBox.SelStart = len(TextBox.Text) 'positionne la sélection à la fin du
textbox

Si tu ne veut pas changer la sélection, tu peux essayer le message
EM_LINESCROLL:
Option Explicit

Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any _
) _
As Long
Private Const EM_LINESCROLL = &HB6

Private Sub Command1_Click()
'The control does not scroll vertically past the last line of text in
the edit control.
'If the current line plus the number of lines specified by the lParam
parameter exceeds the
'total number of lines in the edit control, the value is adjusted so
that the last line of the edit
'control is scrolled to the top of the edit-control window.
'Win 95, Win NT
SendMessage TextBox.hwnd, EM_LINESCROLL, 0, ByVal
CLng(UBound(Split(Text1.Text, vbCrLf)))
End Sub


--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Christophe Jacquelin" a écrit dans le
message de news:40102f87$0$6974$
Bonjour,

Comment se servir d'une textbox comme une fenêtre d'affichage dans
laquelle on envoie des chaines de caractères qui défilent.

Merci,
Christophe,


Avatar
Zoury
Salut Nicolas et François!! :O)

ceci
Text1.Text = Text1.Text & sLigne & vbCrLf


ou encore ceci
TextBox.Text = TextBox.Text & "Nouvelle Ligne" & vbNewLine


ceci devriendra très lent après peu de temps... les concaténations de chaine
en VB sont très très lente et devrait être éviter le plus possible dans un
contexte semblable (c'est à dire où nous devons en faire le plusieurs de
suite...)

AMHA, l'utilisation de la propriété .SelText serait beaucoup plus appropriée
pour votre exemple.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
Zoury
Salut François! :O)

va lire ma réponse à Nicolas.. j'ai fait d'une pierre d'un coup.. ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"François Picalausa" wrote in message
news:
Bonjour/Soir,

Tu peux essayer ceci:

TextBox.Text = TextBox.Text & "Nouvelle Ligne" & vbNewLine
TextBox.SelStart = len(TextBox.Text) 'positionne la sélection à la fin du
textbox

Si tu ne veut pas changer la sélection, tu peux essayer le message
EM_LINESCROLL:
Option Explicit

Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" _
( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any _
) _
As Long
Private Const EM_LINESCROLL = &HB6

Private Sub Command1_Click()
'The control does not scroll vertically past the last line of text in
the edit control.
'If the current line plus the number of lines specified by the lParam
parameter exceeds the
'total number of lines in the edit control, the value is adjusted so
that the last line of the edit
'control is scrolled to the top of the edit-control window.
'Win 95, Win NT
SendMessage TextBox.hwnd, EM_LINESCROLL, 0, ByVal
CLng(UBound(Split(Text1.Text, vbCrLf)))
End Sub


--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Christophe Jacquelin" a écrit dans le
message de news:40102f87$0$6974$
> Bonjour,
>
> Comment se servir d'une textbox comme une fenêtre d'affichage dans
> laquelle on envoie des chaines de caractères qui défilent.
>
> Merci,
> Christophe,




Avatar
Zoury
Salut Christophe! :O)

François et Nicolas t'ont répondu, mais je n'ai pas interprété ta question
de la même façon qu'eux... peux-tu nous expliquer ce que tu entend par
"envoie des chaines de caractères qui défilent." ? tu veux que le texte
aille se placer à la fin de l'autre (réponse fournit par mes deux compères)
ou tu veux que le texte défile de gauche à droite (par exemple) comme pour
un panneau réclame?

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
Christophe Jacquelin
Salut Zoury,

En fait, je voudrais faire comme un écran de l'époque du DOS.
(le texte aille se placer à la fin de l'autre).

Christophe,

Zoury wrote:
Salut Christophe! :O)

François et Nicolas t'ont répondu, mais je n'ai pas interprété ta question
de la même façon qu'eux... peux-tu nous expliquer ce que tu entend par
"envoie des chaines de caractères qui défilent." ? tu veux que le texte
aille se placer à la fin de l'autre (réponse fournit par mes deux compères)
ou tu veux que le texte défile de gauche à droite (par exemple) comme pour
un panneau réclame?



Avatar
Zoury
Bonjour! :O)

dans ce cas la solution proposé par François et Nicolas fonctionne... mais
n'est pas la plus effiface. Je recommende d'utiliser la propriété SelText
(du TextBox ou d'un RichTextBox) afin de parvenir à tes fins.

Voici un exemple de fenêtre de chat qui démontre comment procéder :
http://groups.google.com/groups?threadmäQYQY3KDHA.1656%40TK2MSFTNGP12.phx.gbl

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
ng
Salut,

Pour un RichTextBox d'accord, je l'utilise aussi afin de conserver la mise
en forme mais pour un TextBox classique servant de log par exemple... C'est
vrai que d'un point de vu *logique* seltext serait mieux mais bon.... :-)
Donc oui, pourquoi pas, utilise SelText, autant prendre de bonnes habitudes
bien optimisées :-D

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Zoury wrote:
Bonjour! :O)

dans ce cas la solution proposé par François et Nicolas fonctionne...
mais n'est pas la plus effiface. Je recommende d'utiliser la
propriété SelText (du TextBox ou d'un RichTextBox) afin de parvenir à
tes fins.

Voici un exemple de fenêtre de chat qui démontre comment procéder :



http://groups.google.com/groups?threadmäQYQY3KDHA.1656%40TK2MSFTNGP12.phx.
gbl