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

  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 : 64
    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 : 64
    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 : 41

    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 : 64
    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 : 41

    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