Boutons cachés

Résolu/Fermé
moiii123 Messages postés 19 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 avril 2016 - Modifié par NHenry le 7/08/2015 à 15:45
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 10 août 2015 à 09:30
Bonjour,

Je suis entrain de faire un petit programme en C#.
Dans mon Form1 j'ai caché 3 boutons qui apparaissent par combinaison du clavier (CTRL + ALT).
Lorsque je teste cela fonctionne, je peux autant que je veux faire apparaître ou disparaître les boutons.

Lorsque je clique sur le 1er bouton je rentre sur mon form2.
Une fois que je ressors du form2 les 3 boutons sont affichés mais la combinaison de touches ne fonctionne plus :/

Une petite idée ?

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Ajouter_Bouton.Visible = false;
            Modifier_Bouton.Visible = false;
            Supprimer_Bouton.Visible = false;

        }
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            //Si CTRL + ALT
            if (e.Control && e.Alt && Ajouter_Bouton.Visible == false && Modifier_Bouton.Visible == false && Supprimer_Bouton.Visible == false)
            {
                Ajouter_Bouton.Visible = true;
                Modifier_Bouton.Visible = true;
                Supprimer_Bouton.Visible = true;
            }

            else
            {
                if (e.Control && e.Alt && Ajouter_Bouton.Visible == true && Modifier_Bouton.Visible == true && Supprimer_Bouton.Visible == true)
                {
                    Ajouter_Bouton.Visible = false;
                    Modifier_Bouton.Visible = false;
                    Supprimer_Bouton.Visible = false;
                }
            }
        }

2 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
7 août 2015 à 20:24
Bonjour,

quelle est la valeur de KeyPreview?

Sinon, tous tes boutons doivent être dans le même état pour que la combinaison fonctionne, est ce que tu n'aurais pas changer 1 seul ou 2 sur les 3 quelque part?

Il serait plus judicieux d'utiliser une variable.



        bool visibiliteBouton = false;//déclaration de la variable

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            //Si CTRL + ALT
            if (e.Control && e.Alt)
           {
                visibiliteBouton = ! visibiliteBouton//inversion de la valeur de la variable 
                Ajouter_Bouton.Visible = visibiliteBouton;//et application sur la visibilité
                Modifier_Bouton.Visible = visibiliteBouton;
                Supprimer_Bouton.Visible = visibiliteBouton;
           }
        }



PS Nhenry t'a ajouter la la coloration syntaxique.
Essaye d'y penser pour tes prochaines interventions.
0
moiii123 Messages postés 19 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 avril 2016
Modifié par moiii123 le 9/08/2015 à 20:53
Bonjour,

Merci pour la variable, en effet c'est plus simple.

Je rencontre toujours un souci, je m'explique :
Lorsque j'affiche mon bouton ("Ajouter_Bouton") et que je clique alors je rentre sur mon form 2. Lorsque je ferme mon form2 je reviens sur le form1 (mes boutons sont encore affichés), le bouton garde le focus et donc ma combinaison de touches ne fonctionne plus pour les faire disparaître.

Avez-vous une idée pour résoudre mon souci ?

Merci d'avance.
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928 > moiii123 Messages postés 19 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 avril 2016
9 août 2015 à 22:39
Oui voir ma première question....

quelle est la valeur de KeyPreview?
0
Bonjour,

Le KeyPreview était sur "false".
En le mettant sur "true" alors tout fonctionne bien maintenant.

Un grand merci.
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
10 août 2015 à 09:30
De rien, si ton problème est résolu, merci de l'indiquer en cliquant sur le lien
"Marquer comme Résolu", sous le titre de la discussion.


Si tu veux améliorer tes interactions entre forms, voici un petit tuto que j'ai écrit sur le sujet
https://codes-sources.commentcamarche.net/faq/11107-interactions-entre-form-en-net-c-et-vb-net
0