回答編集履歴

5

KeyDown/KeyUpについて備考追記

2020/06/30 10:37

投稿

SHOMI
SHOMI

スコア4079

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追記

2020/06/30 10:37

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -6,9 +6,23 @@
6
6
 
7
7
 
8
8
 
9
- - 案2:イベント常にFormで処理させる
9
+ - 案2:フォカス外す
10
10
 
11
- ボタンを非表示する処理の以下のコードを追加してみてください。
11
+ ボタンのVisiblefalseした以下のコードを追加してみてください。
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

ボタンを無効にする案を追記

2020/06/30 10:11

投稿

SHOMI
SHOMI

スコア4079

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

リンク追加

2020/06/30 10:04

投稿

SHOMI
SHOMI

スコア4079

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

コード修正

2020/06/30 09:55

投稿

SHOMI
SHOMI

スコア4079

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
  ```