Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».button_A_Click(object sender, EventArgs e)
{
if (etat == min) { envoyer("a"); }
else if (etat == maj) { envoyer("A"); }
else { envoyer("0"); }
}
button_B_Click(object sender, EventArgs e)
{
[…]
button_Click(object sender, EventArgs e)
{
Button b = sender as Button; // vu le nom des méthodes j'imagine que le clavier est composé de Button asp ?
if (b == null) {
// gestionnaire d'évènement appelé au mauvais endroit => gérer l'erreur
return;
}
envoyer(b.Text);
}
enum States {Lowercase, Uppercase, SpecialChars}
Tuple<string, string, string>[] Keys = [
new Tuple<string, string, string>("a","A","1"),
new Tuple<string, string, string>("z","Z","2"),
new Tuple<string, string, string>("e","E","3"),
/.../
];
Dictionnary<Button, Tuple<string, string, string>> ButtonKeys = new Dictionnary<Button, Tuple<string, string, string>>();
private void Init(){
for(Tuple<string, string, string> t in Keys){
Button b = new Button();
b.OnClick += Button_Click;
b.Text = t.Item1;
}
}
private void Button_Click(object sender, EventArgs e){
Button b = sender as Button;
if(b != null && ButtonKeys[b] != null){
Tuple<string, string, string> key = ButtonKeys[b];
switch(CurrentKeyboardState){
case Lowercase:
Envoyer(key.Item3);
break;
case Uppercase:
Envoyer(key.Item3);
break;
case SpecialChars:
Envoyer(key.Item3);
break;
default:
return;
}
}
}