【C#】画面Open/Close直後の処理
画面表示した直後、切り替えた(非表示)した直後に発生するイベントについて調べてみました。
やりたいこと
ユーザーコントロールを切り替えた直後(Visible = true/false)に処理を行う。
画面表示(Visible)する度にShownイベントやCloseイベントが発生すれば、処理楽なのになーと何となく思ったのですが、
Visial C#でユーザーコントロールを使用する場合、私は見つけられませんでした。
代わりに、VisibleChangedイベントがあったのでこれを使おうと思います。
関数セット
ユーザーコントロールのデザイン画面に移動
→プロパティ
→上アイコンの雷マーク
→イベント一覧表示されるので、選択
private void Us_pika1_VisibleChanged(object sender, EventArgs e) { }
デバッグで出力する場合は、以下を関数の中に記載。
System.Diagnostics.Debug.WriteLine("debug");
デバッグとして、イベントの中に以下のような処理を記載。
if (this.Visible) { // true System.Diagnostics.Debug.WriteLine("open"); } else { // false System.Diagnostics.Debug.WriteLine("close"); }
ユーザーコントロールを表示、非表示して画面を切り替える方法については、
先日の簡単に備忘録としてまとめましたが、
shinopikapi.hateblo.jp
ユーザーコントロール1を表示するときは、もう一方のユーザーコントロール2を非表示に、
ユーザーコントロール2を表示するときはこの逆、
となるよう作成していました。
なので、上のソースをイベントの中に記載したら
画面が表示したときは当然trueの方を通って、
切り替えたときはfalseの方を通りました。
特定の画面だけ表示したいときにやりたい処理を書いて、
非表示にしたときはメモリを解放、といったことができるかなと思いました。
やったことは簡単なのですが、
私がC#知らな過ぎてこれは普通のやり方なのか……?
と思いながらやってます。