回答編集履歴
5
KeyDown/KeyUpについて備考追記
test
CHANGED
@@ -24,13 +24,15 @@
|
|
24
24
|
|
25
25
|
ボタンのVisibleをfalseにした後、以下のコードを追加してみてください。
|
26
26
|
|
27
|
+
`KeyDown`,`KeyUp`はデザイナーからイベントハンドラを設定していない場合にコメントを外してください。(今回は不要と思います)
|
28
|
+
|
27
29
|
```C#
|
28
30
|
|
29
31
|
KeyPreview = true;
|
30
32
|
|
31
|
-
KeyDown += new KeyEventHandler(Form1_KeyDown);
|
33
|
+
//KeyDown += new KeyEventHandler(Form1_KeyDown);
|
32
34
|
|
33
|
-
KeyUp += new KeyEventHandler(Form1_KeyUp);
|
35
|
+
//KeyUp += new KeyEventHandler(Form1_KeyUp);
|
34
36
|
|
35
37
|
```
|
36
38
|
|
4
ActiveControl追記
test
CHANGED
@@ -6,9 +6,23 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
- 案2:
|
9
|
+
- 案2:フォーカスを外す
|
10
10
|
|
11
|
-
ボタンを
|
11
|
+
ボタンのVisibleをfalseにした後、以下のコードを追加してみてください。
|
12
|
+
|
13
|
+
```C#
|
14
|
+
|
15
|
+
this.ActiveControl = null;
|
16
|
+
|
17
|
+
```
|
18
|
+
|
19
|
+
[ContainerControl.ActiveControl Property](https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.containercontrol.activecontrol)
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
- 案3:キーイベントを常にFormで処理させる
|
24
|
+
|
25
|
+
ボタンのVisibleをfalseにした後、以下のコードを追加してみてください。
|
12
26
|
|
13
27
|
```C#
|
14
28
|
|
3
ボタンを無効にする案を追記
test
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
+
ボタンが非表示になっただけで、フォーカスはボタンにあたったままになっているためでしょう。
|
2
|
+
|
3
|
+
- 案1:ボタンを無効にする
|
4
|
+
|
5
|
+
ボタンのVisibleをfalseにした後、Enabledもfalseにする。
|
6
|
+
|
7
|
+
|
8
|
+
|
1
|
-
|
9
|
+
- 案2:キーイベントを常にFormで処理させる
|
2
10
|
|
3
11
|
ボタンを非表示にする処理の後に以下のコードを追加してみてください。
|
4
12
|
|
2
リンク追加
test
CHANGED
@@ -11,3 +11,7 @@
|
|
11
11
|
KeyUp += new KeyEventHandler(Form1_KeyUp);
|
12
12
|
|
13
13
|
```
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
[Form.KeyPreview Property](https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.form.keypreview)
|
1
コード修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
コードを見た感じ、ボタンがなくても動かなそうです。
|
2
2
|
|
3
|
-
ボタンを非表示する処理の後に以下のコードを追加してみてください。
|
3
|
+
ボタンを非表示にする処理の後に以下のコードを追加してみてください。
|
4
4
|
|
5
5
|
```C#
|
6
6
|
|
@@ -8,4 +8,6 @@
|
|
8
8
|
|
9
9
|
KeyDown += new KeyEventHandler(Form1_KeyDown);
|
10
10
|
|
11
|
+
KeyUp += new KeyEventHandler(Form1_KeyUp);
|
12
|
+
|
11
13
|
```
|