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

回答編集履歴

1

試したコードを記載

2016/07/26 09:53

投稿

gusao
gusao

スコア185

answer CHANGED
@@ -4,4 +4,37 @@
4
4
  `Application.ApplicationExit`のイベントハンドラの設定を確認したとのことですが、本当に設定されていますか?
5
5
  設定されているイベントはそう簡単に取得できないので、例えばイベントハンドラを設定した直後にメッセージを表示するコードを追加して、`System.Diagnostics.Process.Start()`した後にメッセージが表示されることを確認するとか。
6
6
 
7
- すでにそのような手順で確認済みでしたらすみません。
7
+ すでにそのような手順で確認済みでしたらすみません。
8
+
9
+ 追記:
10
+ うろ覚えですみませんが、私が試したコードを記載します。
11
+ 呼び出し元のアプリケーションでButton1をクリック後、Button2をクリックしてメッセージが表示されたことを確認しました。
12
+ ```c#
13
+ // 呼び出し元のアプリケーションのForm
14
+ System.Diagnostics.Process process;
15
+
16
+ private void button1_Click(object sender, EventArgs e)
17
+ {
18
+ process = System.Diagnostics.Process.Start("test.exe");
19
+ }
20
+
21
+ private void button2_Click(object sender, EventArgs e)
22
+ {
23
+ process.CloseMainWindow();
24
+ }
25
+
26
+
27
+ // 呼び出し先のアプリケーションのProgram.cs
28
+ static void Main()
29
+ {
30
+ var form = new Form1();
31
+ Application.ApplicationExit += (_, __) => form.Foo();
32
+ Application.Run(form);
33
+ }
34
+
35
+ // 呼び出し先のアプリケーションのForm1
36
+ public void Foo()
37
+ {
38
+ MessageBox.Show("Application.Exit");
39
+ }
40
+ ```