DIGICODE question pratique

Résolu
76julien Messages postés 58 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 4 juin 2010 - 10 nov. 2009 à 12:45
76julien Messages postés 58 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 4 juin 2010 - 12 nov. 2009 à 10:14
Bonjour je fais un petit programme personnel appelé DIGICOD
Son nom explique tout des boutons de 0 à 9 un bouton OK et un bouton C pour effacer!
Le truc c'est que j'aimerais simplifier mon code mais comment faire ??


private void button1_Click(object sender, EventArgs e)
{
code = code + button1.Text;
textBox1.Text = code;
}
private void button2_Click(object sender, EventArgs e)
{
code = code + button2.Text;
textBox1.Text = code;
}

[...je mets pas tout....]
}

private void button11_Click(object sender, EventArgs e)
{
code = code + button11.Text;
textBox1.Text = code;
}

private void button12_Click(object sender, EventArgs e)
{
code = "";
textBox1.Text = code;
}

Ya -t-il un moyen d'aller plus vite car pour chaque évenement click de mes boutons j'ai presque la même chose dans mes procédure:
je répète à chaque fois la ligne : textBox1.Text = code;
Y-a-til plus simple?
idem pour la récup de la valeur cliquer...

Merci d'avance pour vos conseils...
bonne prog'

6 réponses

PROTEUS91 Messages postés 156 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 décembre 2010
10 nov. 2009 à 17:29
Tu as tes 9 boutton je suppose que si on prends l'exemple de ton bouton 1, il a en valeur de texte "1" et 2 bah la valeur de texte "2".

Ce que tu peux faire c'est :

        private void Boutondousavient(object sender, EventArgs e)
        {
            Button Lefameuxbouton = (Button)sender;
            textBox1.Text = textBox1.Text + Lefameuxbouton.Text;
        }


Tu accroches cette methodes a tes neuf bouton de la mort et paf tu te retrouve avec deux ligne de commande :p

A pelluche.

PROTEUS
3
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
11 nov. 2009 à 00:27
la solution de proteus est un bon début mais elle est clairement inacceptable
pour 2 raison:

1) si tu factorise, tu factorise les 12 boutons pas seulement les 3/4

2) le texte des boutons est un libellé, et les libellés ne sont pas des données faites pour être utilisées!
si pour une raison x ou y il changer le texte de tout ou parti de ses boutons, il peut jeter son code! quitte à essayer de programmer propre autant ne pas faire du code jetable...

Nul ne devient grand par la guerre...
3
PROTEUS91 Messages postés 156 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 décembre 2010
11 nov. 2009 à 09:20
Inacceptable, Je n'ai qu'une chose a dire lol, le code que je t'ai donné n'est qu'une idée, ici on utilise le variable texte parce que c'est un exemple rien ne t'empêche de configurer un Tag avec un dictionnaire pour informer que le bouton est un bouton numérique ou un bouton cancel ou autre.

Mais bon puisque c'est inacceptable !

A pelluche !

PROTEUS
3
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
10 nov. 2009 à 16:01
tu peux essayer de faire une méthode générique qui en fonction du nom du sender ajoutera la valeur du Tag du sender (préalablement renseigné via le concepteur).

ensuite tu affecte cette méthode a tous tes boutons.
une piste à creuser...

Nul ne devient grand par la guerre...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
76julien Messages postés 58 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 4 juin 2010
10 nov. 2009 à 16:58
Merci je vais me renseigné pour cette méthode de tag.
J'étais en ce moment, en train de voir comment exploiter un sender.
Donc j'étais sur la bonne voie.
merci beaucoup et désolé pour cette question bateau pour vous les BONS !!
@+
0
76julien Messages postés 58 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 4 juin 2010
12 nov. 2009 à 10:14
Merci beaucoup, j'ai trouvé ma soluce. 1 méthode pour 10boutons = gain de temps :
private void recupval(object sender, EventArgs e)
{
Button TheButton = (Button)sender;
code = code + TheButton.Tag.ToString();
textBox1.Text = code;//rafraichir
button13.Enabled button12.Enabled true;//boutons 'C' et 'Eff'
}

J'ai utilisé la méthode des tags.(dédicace à Miltiades) mais le texte de mes boutons ne changera jamais.(dédicace à PROTEUS91)
Merci pour vos lumières. Je valide vos deux réponses.
MERKI
++
0
Rejoignez-nous