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

Windows Forms Discussion :

Un contextMenu pour plusieurs richTextBox


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Un contextMenu pour plusieurs richTextBox
    Bonjour,

    J'aimerais savoir s'il y a un moyen pas trop complexe d'implémenter un contextMenu avec "couper", "copier" et "coller" commun à plusieurs richTextBox de la même form? Comment savoir quand on clique sur "couper" si une zone de texte a été sélectionnée et de quel richTextBox elle provient?

    Merci de vos réponse,

    Bonne journée.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Bonjour,
    j'ai peut-être une solution; à savoir si c'est la meilleure...

    je mettrai 3 bool richTextBox_1_focused, richTextBox_2_focused, richTextBox_3_focused mis à jour respectivement par les actions Enter (prise du focus) et Leave (perte de focus) des 3 RichTextBoxes.
    Puis un simple test dans les fonctions réflexes qui font suite à un clic sur un item de ton contextMenustrip.

    Ca donne à peu près ça :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    bool rtb_1_focused = false;
            bool rtb_2_focused = false;
            bool rtb_3_focused = false;
            private void rtb_1_Enter(object sender, EventArgs e)
            {
                rtb_1_focused = true;
            }
            private void rtb_2_Leave(object sender, EventArgs e)
            {
                rtb_2_focused = false;
            }
            private void rtb_2_Enter(object sender, EventArgs e)
            {
                rtb_2_focused = true;
            }
            private void rtb_3_Leave(object sender, EventArgs e)
            {
                rtb_3_focused = false;
            }
            private void rtb_3_Enter(object sender, EventArgs e)
            {
                rtb_3_focused = true;
            }
            private void rtb_1_Leave(object sender, EventArgs e)
            {
                rtb_1_focused = false;
            }
     
            private void couperToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (rtb_1_focused)
                {
                    //TODO
                }
                else if (rtb_2_focused)
                {
                    //TODO
                }
                else if (rtb_3_focused)
                {
                    //TODO
                }
            }
     
            private void copierToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (rtb_1_focused)
                {
                    //TODO
                }
                else if (rtb_2_focused)
                {
                    //TODO
                }
                else if (rtb_3_focused)
                {
                    //TODO
                }
            }
     
            private void collerToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (rtb_1_focused)
                {
                    //TODO
                }
                else if (rtb_2_focused)
                {
                    //TODO
                }
                else if (rtb_3_focused)
                {
                    //TODO
                }
            }

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Merci pour votre réponse, j'essayerai ça dès mon retour au travail lundi!

    Bon weekend

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    La solution avec les booléens semble fonctionner, j'ai juste simplifié comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     private void couperToolStripMenuItem_Click(object sender, EventArgs e)
            {
                if (rtb_1.Focused)
                {
                    rtb_1.Cut();
                } 
                else if(rtb_2.Focused)
                {
                    rtb_2.Cut();
                 }
    }
    Bonne journée et merci pour votre aide

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Avec plaisir; bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. trigger delete pour plusieurs lignes
    Par Shabata dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/09/2009, 01h00
  2. Réponses: 4
    Dernier message: 14/10/2004, 17h36
  3. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41
  4. Economie de mémoire pour plusieur images avec la même source
    Par neness dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/01/2004, 10h56
  5. Réponses: 4
    Dernier message: 06/11/2003, 10h37

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