IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

[C++.NET] Comment se placer a la fin d'un RichTextBox


Sujet :

VC++ .NET

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut [C++.NET] Comment se placer a la fin d'un RichTextBox
    Bonjour,

    Je developpe en C++ manage sous Visual .Net.

    Or dans mon controle j'ai un controle RichTextBox. A chaque fois que j'ecris un message dedans, celui-ci s'affiche a la fin. Mais je suis oblige de faire defiler avec l'ascenseur pour pourvoir le voir, cela ne defile pas automatiquement.

    Est-ce que vous savez comment je pourrais faire ?

    Merci .

    EDIT: Je n'ai pas le focus sur cette partie, donc ScrollToCaret ne fonctionne pas

  2. #2
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Donc donnes-lui le focus

  3. #3
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    Merci pour la reponse, et le deplacement. Mais justement le probleme c'est que je veux le faire sans lui donner le focus. Est-ce possible ou non ?

  4. #4
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Citation Envoy� par barthelv
    Merci pour la reponse, et le deplacement. Mais justement le probleme c'est que je veux le faire sans lui donner le focus. Est-ce possible ou non ?
    Une fois que tu as r�ussi � positionner � la fin du texte, je pense que tu peux tr�s bien rendre le focus � un autre contr�le que tu souhaites non :
    Quel est le souci pour que tu ne veuilles pas utiliser le Focus :

  5. #5
    Membre �clair�
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Par d�faut
    En fait ce que tu souhaite c'est �crire en fin de ton richtextbox je supose.

    Donc pour cel� tu as 2 possibilit�s:

    1.Tu utilise ce control uniquement pour afficher du simple texte

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    richTextBox.Text += "du texte à la fin";
    2.Tu utilise ce control pour afficher du texte format� RTF

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    richTextBox.RTF+= @"\b du texte en gras à la fin \b0";

    Sinon si c'est pour vraiment te positionner en fin, jsute pour afficher, tu peux t'y d�placer comme tu as fait, puis donner le focus � un autre composant.

    Explique peut �tre pourquoi le composant ne doit pas avoir le focus, si c est pour empecher que l'utilisateur ne modifie le texte, il suffit de mettre readOnly � true...

    edit: neguib m'a devanc�, salut � toi, ca fait longtemps

  6. #6
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    En fait je fais un traitement sur une autre tache que celle de la fenetre et je veux pouvoir ajouter du texte dans le RichTextBox, genre un code erreur, des resultats, des logs... Du coup il faut que le texte defile au fur et a mesure.

    Je ne veux pas lui donner le focus car sinon, si l'utilisateur est en train sur l'interface de cliquer sur un combobox par exemple pour choisir un element, il va perdre le focus et la combo va se refermer

    Et puis c'est stupide, on n'a pas besoin de donner le focus a un bouton pour le renommer ou le griser, je ne comprends pas pourquoi il faut donner un focus a un controle pour le modifier

    @frechy ecrire a la fin, j'y arrive pas de probleme, mais quand ton RichText fait 80 lignes et que seules 5 sont visibles, je veux que a tout moment soient visibles les 5 dernieres ecrites sans que l'on doive faire defiler l'ascenseur

  7. #7
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Mmmh c'est �tonnant mais ton utilisation du RichTexBox me fait plus penser � une console qu'� un RichTexBox :

  8. #8
    Membre �clair�
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Par d�faut
    Alors je ne vois pas...

    Sinon tu peux retenir tes logs dans une var et n'afficher que les 5 derni�res lignes si ton richtextbox fait 5 lignes.

    Si la souris passe au dessus du controle tu recharge tout, et lorsque la souris quitte tu remets uniquement les 5 dernieres lignes...

  9. #9
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    Citation Envoy� par neguib
    Mmmh c'est �tonnant mais ton utilisation du RichTexBox me fait plus penser � une console qu'� un RichTexBox :
    Ben en fait c'est cela, je me sert du RichTextBox pour faire une console. Pourquoi il y aurait un autre type de controle plus adapte a ce que je veux faire ?

  10. #10
    Membre �prouv�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    83
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 83
    Par d�faut
    Bonjour,

    En C#, tu peux utiliser �a pour te positionner � la fin de ton richtextbox:


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ....
    [DllImport("User32.dll")] 
    public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); 
    const int WM_VSCROLL = 0x0115;
    const int SB_BOTTOM = 7;
    .....
    ...
    ....
     
    private void Postionnement()
    {
     
    	....
    	....
    	SendMessage(richtextbox.Handle,WM_VSCROLL,SB_BOTTOM,0);
    	....
    	....
    }

  11. #11
    Membre �clair�
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Par d�faut
    Ok je vais tester cela

    EDIT: Cela fonctionne parfaitement, merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    R�ponses: 4
    Dernier message: 19/10/2011, 17h43
  2. [VB.net] Comment attendre la fin d'un programme ?
    Par nakata77 dans le forum VB.NET
    R�ponses: 2
    Dernier message: 14/09/2006, 17h16
  3. R�ponses: 9
    Dernier message: 26/10/2005, 12h29
  4. [vb.net] Comment vider un buffer ?
    Par mdc dans le forum Windows Forms
    R�ponses: 4
    Dernier message: 16/12/2003, 15h43
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    R�ponses: 3
    Dernier message: 13/03/2003, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo