私は私のフォーラムで継承している基本フォームクラスを持っています。継承されたフォームでコードを実行する前に、ベースフォームからコードを実行することは可能ですか?私は彼らが基本クラスで閉じたいかどうかを確認するチェックがあり、ポップアップフォームにはいを言うまで実行する必要はありません。どうすればこれを達成できますか?フォーム終了イベント
答えて
私が望む正確な振る舞いを得るために、私は基本終了イベントで2つのイベントを追加しました。 1つはチェックの直後、もう1つはコードが実行された後です。その後、InheritedクラスのFormClosingイベントを置き換えて両方のイベントを使用しました。このアプローチにより、私は自由度が増し、mybaseを呼び出すことができました.OnFormClosing
サブクラスでイベントを処理する代わりに、OnFormClosingメソッドをオーバーライドします。次に、基本クラスの実装を選択するようにすることができます。その後、あなたのものをしてください。すでにお使いのベースクラスでFormClosingイベントにtrueまたはfalseにe.Cancelプロパティを設定していると仮定すると、
Protected Overrides Sub OnFormClosing(e As System.Windows.Forms.FormClosingEventArgs)
MyBase.OnFormClosing(e)
'my stuff
End Sub
、あなただけの継承された形でe.Cancel値をチェックする必要があります:
Protected Overrides Sub OnFormClosing(e As FormClosingEventArgs)
MyBase.OnFormClosing(e)
If Not e.Cancel Then
MessageBox.Show("Doing Stuff")
End If
End Sub
これらのソリューションの両方で、私のプログラムはcloseイベントを2回実行します。これは正常ですか? –
@DotNetProgrammerはい、それはベースクローズコードを実行し、継承したベースクローズコードを実行します。あなたのコードがどのように見えるのか分からないので、助けが必要な場合はコードを投稿してください。 – LarsTech
投稿したコードとほぼ同じです。それはMessageBoxを実行し、再度来て、再度メッセージボックスを表示します。私はブール値を追加して継承クラスの後で基本クラスを2回目に実行するようにすることができます。 –
- 1. ウィンドウフォーム終了イベント
- 2. アプリケーションの終了イベントの終了
- 3. スレッド終了イベント - C++
- 4. .NETコンソールアプリケーション終了イベント
- 5. Qtアプリケーションキャンセル終了イベント
- 6. カスタムの終了イベントとデフォルトの終了イベントの違い
- 7. Vbaでフォームの終了イベント処理を停止する
- 8. C#:Excelの終了イベントでWindowsフォームを閉じる
- 9. Pythonでのスレッド終了イベント
- 10. Cordovaアプリの終了イベント
- 11. Vimeo Player付きイベント - 終了
- 12. Java SWTシェルウィンドウの終了イベント
- 13. .offアニメーション終了イベントをアンバインド
- 14. Pygletのウィンドウの終了イベント
- 15. 検出ページ終了イベント
- 16. C#のアプリケーション終了イベント
- 17. JSイベントの終了ループ
- 18. 更新イベント終了(updateEvent)
- 19. アプリケーション終了イベントのキャプチャ - WinForms
- 20. ノードREPL「終了時」イベント
- 21. キャプチャ.Netスレッド終了イベント
- 22. onmousedownイベントの終了(onmouseup?)
- 23. イベント終了後の関数
- 24. Viewpagerのスクロール終了イベント
- 25. sublimetext3イベントのプログラム終了
- 26. フォーム終了時のMessageBox
- 27. プロセス終了イベントに対するアプリケーション終了
- 28. ノードjsウィンドウ子プロセスの終了と終了イベント
- 29. 終了メニューと終了イベントを使用してアプリケーションをシャットダウン
- 30. ページの自動保存/送信フォーム/ブラウザの終了/終了
これらのソリューションを使用すると、私のプログラムはcloseイベントを2回実行します。これは正常ですか? –