0
votes

Comment allouer deux fonctions différentes au même bouton?

Je travaille sur Winforms avec C #.

J'ai un problème avec la logique, il y a deux méthodes différentes que je dois appeler, de sorte que si je clique sur le bouton, la première action doit être appliquée et si je Cliquez à nouveau sur le même bouton, la deuxième action doit être appliquée. P>

Ce n'est pas le code exact, mais j'ai une idée comme ceci: p>

private void button1_Click(object sender, EventArgs e)
{
    if(button1.click==true)
    {
        fileNumber = 1;
        ImgSave();
    }
    else
    {
        ImgSave.exit();
    }
}
  • S'il n'est pas cliqué sur le imgSave () code> doit être activé. p> li>

  • Si le bouton est cliqué sur le imgSave () code> devrait être fermé. p> li> ul>

    Quelqu'un peut-il m'aider avec cela? Merci. P> p>


3 commentaires

La bonne façon de dire "merci" est de uplifier les bonnes réponses et d'accepter celui qui vous a plus aidé à résoudre votre problème voir Comment accepter une réponse fonctionne


Avez-vous une restriction sur le nombre de boutons que vous pouvez mettre sur un formulaire? :-)


Oui., Je dois utiliser un seul bouton, pour deux fonctions différentes.


3 Réponses :


2
votes

Vous devez garder l'état quelque part. Vous pouvez le faire:

private bool buttonClicked = false;

private void button1_Click(object sender, EventArgs e)
{
    if(!buttonClicked)
    {
        buttonClicked = true;
        fileNumber = 1;
        ImgSave();
    }
    else
    {
        ImgSave.exit();
    }
}

This assumes you never going to click it a third time. If you are, you would need to handle that in some way.


0 commentaires

1
votes

J'aurais soit une piste de variable de classe de classe, le nombre de fois qu'un bouton est cliqué sur: xxx

, ou je l'enregistrerais dans le bouton. xxx

Vous pouvez également supprimer un gestionnaire d'événements et ajouter un autre: xxx

J'ai toujours été moins fan d'un fan d'ajout et supprimer des gestionnaires d'événements pour obtenir des choses comme ceci, mais c'est une solution assez propre


0 commentaires

1
votes

Vous devez enregistrer votre état dans une variable. Votre état changera après le premier clic et vous pouvez modifier l'état de clic sur le bouton avec Calling ConditionChanger () Méthode à tout moment.

Par exemple, vous aurez peut-être besoin de modifier l'état de variable lorsque vous avez cliqué sur un second bouton. . xxx

Votre variable: xxx

et votre événement de clic: xxx


0 commentaires