回答編集履歴
1
回答したコードの動作原理の説明を追加
answer
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
-
`Add_Shown()`の行を次のように変えるとうまくいきました。
|
1
|
+
`.Add_Shown()`の行を次のように変えるとうまくいきました。
|
2
2
|
|
3
3
|
```powershell
|
4
4
|
$form.Add_Shown({ $form.Activate(); $OKButton.Select(); })
|
5
5
|
```
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
PowerShellでコントロール(GUIコンポーネント)にイベントハンドラを追加するには`Add_イベント名()`メソッドを使用します。スクリプトブロックを引数に渡すことで、イベントの発火時にその内容を呼び出すことができます。[(公式Wiki)](https://social.technet.microsoft.com/wiki/contents/articles/25911.how-to-add-a-powershell-gui-event-handler-part-1.aspx)
|
8
|
+
|
9
|
+
フォームをアクティブにするためのメソッド`.Activate()`は[公式ドキュメント](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.form.activate)によると呼び出しに必須条件があります。
|
10
|
+
> このメソッドが効果を持つようにするには、フォームが表示されている必要があります。
|
11
|
+
|
12
|
+
[Shownイベント](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.form.shown)が発火するのはフォームが表示されたあとのようなので、`.Add_Shown()`メソッドを使って`.Activate()`の呼び出しをフォームの表示後に遅らせることにより`.Activate()`の呼び出しの条件を満たすことができます。
|