メンバ一覧 Renew 前のメソッド 次のメソッド

VB C# ALL プログラミング言語によるフィルタ (ここで選んだ言語で選別された説明や図だけが表示されます)

Renew メソッド

機能および役割

以前に使用した MANDALA フォームをリニューアルして、新品のフォームの場合と同様に使うことを可能にする。

このメソッドを用いて、MANDALA フォームを使いまわすことによって、使うたびに毎回フォームをコンストラクトするというようなオーバヘッドを軽減することができる。

所属クラス (ツーピーススタイルの場合にこのメソッドが宣言されているクラス)

AppliTech.WorkFrame.FormBase (ローカル)

呼出し方

fB.Renew()

(ただし fB は、クラス FormBase のインスタンス)

戻り値の型および意味

(戻り値なし)

パラメタの型および意味

(パラメタなし)

例外の発生 (誤った呼出しの際に発生する例外)

「フォームがアクティブなので処理できません (Renew)」

使用上のヒントと注意事項

このメソッドによって、使い終わったフォームを初期化することによって再生させて、Open 以降のフックメソッドを再実行させることができる。

単一フォームのアプリケーションではこのメソッドを使用することはない。 このメソッドが必要になるのは、複数のフォームを用いるアプリケーションで、 かつ、いったん表示を終了したフォームのインスタンスを保持したままにし、使いまわしたい場合である。 複数のフォームを使用する場合でも、使い終わったフォームを毎回破棄するのであればこのメソッドを使用する必要はない。

あるフォーム (以後これを先発フォームと呼ぶ) から別のフォーム (以後これを後発フォームと呼ぶ) をモーダル表示し、後発フォームのインスタンスを保持したままで元の先発フォームに戻った後に、再度、後発フォームを表示すると、目指す処理が実施できないことがある。 たとえば、後発フォームのアプリの型がデータ更新型である場合、選択モードでの入力を行うようになっていれば問題ないが、選択モードでは入力を行わずに Select 条件を先発フォームから引き渡すような場合は、後発フォームの Current フックメソッドが実行されることになる。
 この状態で後発フォームを再度表示すると Current フックメソッドが正しい選択条件を得ることができない。
 このような場合、先発フォーム側から後発フォームの Renew メソッドを呼び出し、処理を先頭からやりなおさせることによって、目指す処理が可能になる。

後発フォームで行う初期設定処理に関しては、重複しないように注意することが必要である。 たとえば、データベースへの接続を Open で行うことにしていると、Renew を呼び出すたびに接続処理を行ってしまう恐れがある。 後発フォーム側では、フォームの終了時に接続を解除するか、またはフックメソッド Open の中で以前に接続済であれば、その接続を使うなどの対策が必要である。

関連事項

使用例

Friend Function 家族構成入力_GetEvent(ByVal fB As FormBase) As Boolean
    Dim errCount As Integer = fB.CompleteCheck(False)
    If errCount > 0 Then
        Return FormBase.GETEVENT_Deny
    End If
    If fri_生徒家族構成管理 Is Nothing Then
        fri_生徒家族構成管理 = New Fr_生徒家族構成管理(fB)
    Else
        fri_生徒家族構成管理.getFormBase().Renew()
    End If
    Dim res As DialogResult = fri_生徒家族構成管理.ShowDialog(fB.myForm)
    Return FormBase.GETEVENT_Allow
End Function
internal bool 家族構成入力_GetEvent( FormBase fB ) {
    int errCount = fB.CompleteCheck(false);
    if (errCount > 0) {
        return FormBase.GETEVENT_Deny;
    }
    if (Fri_生徒家族構成管理 == null) {
        Fri_生徒家族構成管理 = new Fr_生徒家族構成管理(fB);
    }
    else {
        Fri_生徒家族構成管理.getFormBase().Renew();
    }
    DialogResult res = Fri_生徒家族構成管理.ShowDialog(fB.myForm);
    return FormBase.GETEVENT_Allow;
}
 boolean 家族構成入力_GetEvent( FormBase fB )
        throws Exception {
    int errCount = fB.CompleteCheck(false);
    if (errCount > 0) {
        return FormBase.GETEVENT_Deny;
    }
    if (Fri_生徒家族構成管理 == null) {
        Fri_生徒家族構成管理 = new Fr_生徒家族構成管理(fB);
    }
    else {
        Fri_生徒家族構成管理.getFormBase().Renew();
    }
    DialogResult res = fB.ShowDialog(Fri_生徒家族構成管理.getJFrame());
    return FormBase.GETEVENT_Allow;
}