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

C# Discussion :

des lignes cliquables


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par défaut des lignes cliquables
    bonjour,

    Je voudrais créer quelque chose comme la liste des contactes sur MSN, lorsque je clique sur le pseudo d'un contacte une fenetre de ce contacte s'ouvre.

    Supposons que j'ai un textBox où chaque ligne de ce textBox contient le nom d'un contact. Est ce que je peux faire quand je clique sur une ligne de ce textBox je récupère le texte de cette ligne ?

    sinon y a t-il un moyen pour faire ceci ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu peux utiliser GetCharIndexFromPosition pour déterminer l'index du caractère en fonction de la position du clic, et GetLineFromCharIndex pour obtenir le numéro de ligne en fonction de l'index du caractère.

    Donc pour récupérer la ligne lors du click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void theTextBox_MouseClick(object sender, MouseEventArgs e)
    {
        int charIndex = theTextBox.GetCharIndexFromPosition(e.Position);
        int lineIndex = theTextBox.GetLineFromCharIndex(charIndex);
        string line = theTextBox.Lines[lineIndex];
        ...
    }

  3. #3
    Membre éclairé Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par défaut
    salut,

    merci pour ta réponse et ça marche très bien

    juste e.Position n'est pas reconnue donc j'ai du la remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Point p = new Point(e.X, e.Y);
     int charIndex = textBox1.GetCharIndexFromPosition(p);
    une dernière question s'il vous plait, j'aimerais que la ligne sélectionnée soit colorée juste pour indiquer sur quelle ligne on a cliqué, est cela est possible ?

    Merci encore pour votre aide.

  4. #4
    Membre éclairé Avatar de ralf91
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 419
    Par défaut
    j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Point p = new Point(e.X, e.Y);
    int charIndex = textBox1.GetCharIndexFromPosition(p);
    int lineIndex = textBox1.GetLineFromCharIndex(charIndex);
    string line = textBox1.Lines[lineIndex];
    textBox1.Select(textBox1.Text.IndexOf(line), line.Width);
    mais la il sélectionne que la chaine, moi je veux colorer toute la ligne ? donc j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    textBox1.Select(textBox1.Text.IndexOf(line), textBox1.Width);
    mais la aussi il sélectionne que le texte, donc par exemple si mon textBox1 contient :

    aaaa
    bbb
    cc

    sachant que la largeur de mon textBox1 = 30 la il me sélectionne tout le texte (il ne compte pas les blanc)

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par ralf91 Voir le message
    juste e.Position n'est pas reconnue
    Au temps pour moi, c'est e.Location...

    Citation Envoyé par ralf91 Voir le message
    mais la il sélectionne que la chaine, moi je veux colorer toute la ligne ?
    Pas possible avec une TextBox. Ca ne sélectionne que le texte, pas la partie de la ligne où il n'y a pas de texte...

    Citation Envoyé par ralf91 Voir le message
    donc j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    textBox1.Select(textBox1.Text.IndexOf(line), textBox1.Width);
    Le 2e paramètre de Select est un nombre de caractère, ça n'a pas de sens de lui passer une longueur en pixels...

    De toutes façons, une TextBox ne me semble vraiment pas adaptée à ce que tu veux faire : pour une liste de contacts, utilise une ListBox ou une ListView, c'est fait pour ça... en plus la sélection est automatique et se fait de la façon que tu veux (toute la ligne sélectionnée)

Discussions similaires

  1. [DisplayTag] Ligne cliquable et changement des paramètres Javascript
    Par BiM dans le forum Taglibs
    Réponses: 1
    Dernier message: 16/12/2009, 11h48
  2. dessiner des lignes "cliquables"
    Par r0d dans le forum Webdesign & Ergonomie
    Réponses: 14
    Dernier message: 21/03/2005, 15h02
  3. [LG]Compter des Lignes...
    Par Loceka dans le forum Langage
    Réponses: 7
    Dernier message: 04/03/2004, 20h29
  4. Réponses: 4
    Dernier message: 24/04/2003, 22h28
  5. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 18h15

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