質問するログイン新規登録

質問編集履歴

1

ソース貼付け

2021/05/06 07:47

投稿

kaoi
kaoi

スコア2

title CHANGED
File without changes
body CHANGED
@@ -11,4 +11,90 @@
11
11
  KeyDown等でスペースへの変換処理をしても、その後にバックスペースの処理がされてしまい
12
12
  思っている位置にキャレットが移動できず困っています。
13
13
 
14
- 何卒ご教授願えないでしょうか。
14
+ 何卒ご教授願えないでしょうか。
15
+
16
+ ```C#
17
+ コードusing System;
18
+ using System.Collections.Generic;
19
+ using System.ComponentModel;
20
+ using System.Data;
21
+ using System.Drawing;
22
+ using System.Linq;
23
+ using System.Text;
24
+ using System.Threading.Tasks;
25
+ using System.Windows.Forms;
26
+
27
+ namespace MaskText
28
+ {
29
+ public partial class Form1 : Form
30
+ {
31
+ public MaskedTextBox[] MskTxt;
32
+
33
+ public Form1()
34
+ {
35
+ InitializeComponent();
36
+ }
37
+ private void Form1_KeyDown(object sender, KeyEventArgs e)
38
+ {
39
+
40
+ int tno = Convert.ToInt32(ActiveControl.Tag) - 1;
41
+
42
+ var calet = MskTxt[tno].SelectionStart;
43
+ label1.Text = calet.ToString();
44
+ if (tno == 5)
45
+ tno = 0;
46
+
47
+ if (e.KeyData != Keys.Back)
48
+ {
49
+ switch (calet)
50
+ {
51
+ case 8:
52
+ if (Keys.D0 <= e.KeyData && e.KeyData <= Keys.D9)
53
+ {
54
+ MskTxt[tno + 1].Focus();
55
+ }
56
+ break;
57
+ case 9:
58
+ if (Keys.D0 <= e.KeyData && e.KeyData <= Keys.D9)
59
+ {
60
+ MskTxt[tno + 1].Focus();
61
+ MskTxt[tno + 1].Text = e.KeyData.ToString();
62
+ }
63
+ break;
64
+ default:
65
+ break;
66
+ }
67
+ }
68
+ else
69
+ {
70
+ string s = "";
71
+ s = MskTxt[tno].Text.Remove(calet-1, 1);
72
+ s = s.Insert(calet-1, ' '.ToString());
73
+ MskTxt[tno].Text = s;
74
+ MskTxt[tno].SelectionStart = calet;
75
+ }
76
+ }
77
+
78
+ private void Form1_Load(object sender, EventArgs e)
79
+ {
80
+ MskTxt = new System.Windows.Forms.MaskedTextBox[6]
81
+ {
82
+ maskedTextBox1,maskedTextBox2,
83
+ maskedTextBox3,maskedTextBox4,
84
+ maskedTextBox5,maskedTextBox6
85
+ };
86
+ }
87
+
88
+ private void maskedTextBox1_KeyPress(object sender, KeyPressEventArgs e)
89
+ {
90
+ e.Handled = true;
91
+ if (e.KeyChar >= '0' && e.KeyChar <= '9')
92
+ {
93
+ e.Handled = false;
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ ```
100
+ ソースは上記の通りとなります。