カスタム ダイアログを作成しようとしています。すべて問題ありませんが、ダイアログを Show() イベントで呼び出し可能にしたくありません。とにかくこれをブロックしますか?
1 に答える
3
クラスが継承している場合、Form
それは不可能です。 Show
仮想ではないため、オーバーライドできません。それをシャドウし、例外をスローするか、ShowDialog
内部的に呼び出す必要があります(オプションとして完全に削除する方法はありません)が、変数を a として入力するだけの呼び出し元は、実装をバイパスして をForm
呼び出すことができます。Show
利用可能な唯一のオプションは、クラスが から継承しないことですForm
。継承ではなく構成を使用するように型を設計する必要があります。型の定義内にプロパティを持ちForm
、通常は型自体を操作する場合と同様に、それを操作したり、コントロールを追加したりします。
外部に公開したい機能のメンバーを明示的に作成し、適切な呼び出しをカプセル化されたフォーム ( などのメソッドShowDialog
) にリダイレクトする必要があります。
于 2013-09-10T19:44:00.200 に答える