非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【ちょっとメモ】 C#でメインではないフォームからアプリを終了させる方法

      2016/06/11

広告

メインフォームが
this.Close();
とやれば、アプリケーション全体が終了しますが、サブフォームだった場合は、そのフォームが閉じるだけでアプリ全体は終了しません。

メインファーム側で、
public void end(){
   this.Close();
}
としておいて、サブフォーム側でこれをたたけば終了しますが、メインフォームをオブジェクトとして渡したりちょっと面倒です。(以下は良くない例)

■メインフォーム側(MainForm)
//SubFormのコンストラクタに自分を渡しておく
SubForm d = new SubForm(this);

■サブフォーム側(SubForm)
class SubForm{
   Mainform parent;

   SubForm(Mainform f){
      this.parent = f;
   }
}

こうやっておけば、SubFrom側で、
parent.end();

とやれば終了できます。ただ、ちょっと面倒ですね。
実は、もっと簡単な方法がありまして、サブフォームから、

Application.Exit();
とやれば、アプリが終わります。複雑な仕掛けも必要なくシンプルです。

 

 

 - C#応用編