Goedendag,
Ik heb een probleem met mijn applicatie, ik heb een formulier waarop leden toe te voegen zijn. Om de geboortedatum en lidsindsdatum in te vullen heb ik per datum een textbox(tb) die de datum laat zien als dd-mm-eejj en een masked textbox(mtb) waarin alleen getallen te vullen zijn. Ik heb een event bij de textbox_enter waarbij de tb niet zichtbaar wordt en de mtb wel zichtbaar. De tekst wordt overgenomen en de focus wordt gezet op de mtb. Ik heb ook een event maskedtextbox_leave waarbij de mtb niet zichtbaar wordt en de tb wel zichtbaar. De tekst wordt overgenomen.
Nu het probleem als ik aan het debuggen ben dan zie dat bij het binnenkomen van de geboortedatum de volgende events doorlopen worden:
- het enter-event van de geboortedatum (tb)
- meerdere malen het leave-event van de geboortedatum (mtb)
- het enter-event van de lidsindsdatum (tb)
- meerdere malen het leave-event van de lidsindsdatum (mtb)
Dit zou alleen het eerste event moeten zijn!!!
De tabindex van tb en mtb zijn gelijk, tabstop van mtb staat op false.
Iemand een idee wat hier aan de hand kan zijn?
Ik heb een probleem met mijn applicatie, ik heb een formulier waarop leden toe te voegen zijn. Om de geboortedatum en lidsindsdatum in te vullen heb ik per datum een textbox(tb) die de datum laat zien als dd-mm-eejj en een masked textbox(mtb) waarin alleen getallen te vullen zijn. Ik heb een event bij de textbox_enter waarbij de tb niet zichtbaar wordt en de mtb wel zichtbaar. De tekst wordt overgenomen en de focus wordt gezet op de mtb. Ik heb ook een event maskedtextbox_leave waarbij de mtb niet zichtbaar wordt en de tb wel zichtbaar. De tekst wordt overgenomen.
Nu het probleem als ik aan het debuggen ben dan zie dat bij het binnenkomen van de geboortedatum de volgende events doorlopen worden:
- het enter-event van de geboortedatum (tb)
- meerdere malen het leave-event van de geboortedatum (mtb)
- het enter-event van de lidsindsdatum (tb)
- meerdere malen het leave-event van de lidsindsdatum (mtb)
Dit zou alleen het eerste event moeten zijn!!!
De tabindex van tb en mtb zijn gelijk, tabstop van mtb staat op false.
Iemand een idee wat hier aan de hand kan zijn?
C#:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
| private void tbGeboortedatum_Enter(object sender, EventArgs e) { mtbGeboortedatum.Visible = true; mtbGeboortedatum.Text = tbGeboortedatum.Text.Replace("-", ""); mtbGeboortedatum.Focus(); tbGeboortedatum.Visible = false; } private void mtbGeboortedatum_Leave(object sender, EventArgs e) { if (mtbGeboortedatum.Text.Length == 0 || GeldigeDatum(mtbGeboortedatum.Text)) { tbGeboortedatum.Visible = true; tbGeboortedatum.Text = DatumOpgemaakt; mtbGeboortedatum.Visible = false; } else { buttonPanelLidOpslaan.Enabled = false; MessageBox.Show("Dit is geen geldige datum"); mtbGeboortedatum.Focus(); } } private void tbLidSindsDatum_Enter(object sender, EventArgs e) { mtbLidSindsDatum.Visible = true; mtbLidSindsDatum.Text = tbLidSindsDatum.Text.Replace("-", ""); mtbLidSindsDatum.Focus(); tbLidSindsDatum.Visible = false; } private void mtbLidSindsDatum_Leave(object sender, EventArgs e) { if (mtbLidSindsDatum.Text.Length == 0 || GeldigeDatum(mtbLidSindsDatum.Text)) { tbLidSindsDatum.Visible = true; tbLidSindsDatum.Text = DatumOpgemaakt; mtbLidSindsDatum.Visible = false; } else { buttonPanelLidOpslaan.Enabled = false; MessageBox.Show("Dit is geen geldige datum"); mtbLidSindsDatum.Focus(); } } private bool GeldigeDatum(string strDatum) { GoedeDatum = true; strDatum = strDatum.Replace("_", ""); if (strDatum.ToString().Length < 6) { GoedeDatum = false; } else { string strDatum7Optie2 = ""; if (strDatum.ToString().Length == 6) { strDatum = "0" + strDatum.Substring(0, 1) + "0" + strDatum.Substring(1, 5); } if (strDatum.ToString().Length == 7) { strDatum7Optie2 = strDatum.Substring(0, 2) + "-0" + strDatum.Substring(2, 1) + "-" + strDatum.Substring(3, 4); ; strDatum = "0" + strDatum.Substring(0, 7); } DatumOpgemaakt = strDatum.Substring(0, 2) + "-" + strDatum.Substring(2, 2) + "-" + strDatum.Substring(4, 4); try { TeTestenDatum = DateTime.ParseExact(DatumOpgemaakt.ToString(), "dd-MM-yyyy", null); TestDatum = DateTime.Parse(TeTestenDatum.ToString()); } catch (Exception) { GoedeDatum = false; } if (!GoedeDatum && strDatum7Optie2 != "") { try { GoedeDatum = true; DatumOpgemaakt = strDatum7Optie2; TeTestenDatum = DateTime.ParseExact(DatumOpgemaakt.ToString(), "dd-MM-yyyy", null); TestDatum = DateTime.Parse(TeTestenDatum.ToString()); } catch (Exception) { GoedeDatum = false; } } } return GoedeDatum; } |