Bonjour à tous,
je viens vers vous pour un petit dilemme. Dans mon programme, sur l'écran d'accueil j'attends que l'utilisateur entre sa carte d'identité dans le lecteur pour commencer à traiter des informations, et pour ça j'ai une boucle do...while qui boucle à l'infini sur les différents écrans tant que l'utilisateur n'est pas arrivé au bout.
Seulement je trouve cette méthode pas super propre (en plus de me poser des soucis, dans le code ci-dessous, si je ne met pas un messagebox dedans pour "stopper" la boucle, l'écran de départ ne se lance même pas.
En autre solution j'avais également penser à un événement personnalisé qui détecterait lorsque la carte est insérée et retirée, mais je ne sais pas trop comment et si c'est possible de le faire, le seul élément que j'ai pour savoir si la carte est insérée étant un reader.IsCardPresent.
Si quelqu'un avait une idée à me proposer pour me sortir de ce pétrin ça serait sympa
Code actuel :
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 private void F_RDV_Shown(object sender, EventArgs e) { do { using (eIDReader reader = new eIDReader()) { if (reader.IsCardPresent && step == 1) { eIDData data = reader.LoadData(); // Récupération des informations présente sur la carte d'identité if (data != null && !string.IsNullOrEmpty(data.LastName)) nom = data.LastName; if (data != null && !string.IsNullOrEmpty(data.FirstName)) prenom = data.FirstName; if (data != null && !data.DateOfBirth.Equals(null)) dateNaiss = data.DateOfBirth; if (data != null && !string.IsNullOrEmpty(data.Gender)) sexe = data.Gender; if (data != null && !string.IsNullOrEmpty(data.NationalNumber)) niss = data.NationalNumber; if (data != null && !string.IsNullOrEmpty(data.Street)) adresse = data.Street; if (data != null && !string.IsNullOrEmpty(data.ZipCode)) codePostal = data.ZipCode; if (data != null && !string.IsNullOrEmpty(data.Municipality)) localite = data.Municipality; if (data != null && !data.Picture.Equals(null)) photo = data.Picture; // Changement d'écran pour prévenir qu'on peut retirer la carte d'identité tabControlPrincipal.SelectedTab = ut_BorneP2.Tab; step++; } if (!reader.IsCardPresent) { switch (step) { case 2: tabControlPrincipal.SelectedTab = ut_BorneP4.Tab; break; case 3: tabControlPrincipal.SelectedTab = ut_BorneP5.Tab; break; case 4: tabControlPrincipal.SelectedTab = ut_BorneP6.Tab; break; case 5: tabControlPrincipal.SelectedTab = ut_BorneP7.Tab; break; case 6: tabControlPrincipal.SelectedTab = ut_BorneP8.Tab; break; default: tabControlPrincipal.SelectedTab = ut_BorneP1.Tab; step = 1; break; } } } Thread.Sleep(2000); MessageBox.Show("boucle"); } while (!SorsDeLaBoucle); }
Partager