回答編集履歴

2

回答の修正

2018/05/29 06:45

投稿

y_waiwai
y_waiwai

スコア87749

test CHANGED
@@ -38,8 +38,6 @@
38
38
 
39
39
  TextBox tx = sender as TextBox;
40
40
 
41
- if (tx.Text == "") { val = ""; return; }
42
-
43
41
  if (Regex.IsMatch(tx.Text, @"^\d*[.]?\d?$"))
44
42
 
45
43
  {

1

回答の追記

2018/05/29 06:45

投稿

y_waiwai
y_waiwai

スコア87749

test CHANGED
@@ -5,3 +5,57 @@
5
5
 
6
6
 
7
7
  初心者のうちはそのほうが簡単だと思いますよ
8
+
9
+
10
+
11
+ ---
12
+
13
+
14
+
15
+ KeyPressでごそごそするというのはシュミでないんでちと考えてみました
16
+
17
+ 直前の値を覚えておくためのtextval が必要なのがちとアレですが
18
+
19
+ あくまで一例ということで
20
+
21
+
22
+
23
+ ```C#
24
+
25
+ using System.Text.RegularExpressions;
26
+
27
+
28
+
29
+
30
+
31
+ string textval;
32
+
33
+ // TextBoxのTextChange イベント
34
+
35
+ private void txTextChange(object sender, EventArgs e)
36
+
37
+ {
38
+
39
+ TextBox tx = sender as TextBox;
40
+
41
+ if (tx.Text == "") { val = ""; return; }
42
+
43
+ if (Regex.IsMatch(tx.Text, @"^\d*[.]?\d?$"))
44
+
45
+ {
46
+
47
+ textval = tx.Text;
48
+
49
+ }
50
+
51
+ else
52
+
53
+ {
54
+
55
+ tx.Text = textval;
56
+
57
+ }
58
+
59
+ }
60
+
61
+ ```