メンバ一覧 EnableObjectsInForm | 前のメソッド 次のメソッド |
VB C# ALL プログラミング言語によるフィルタ (ここで選んだ言語で選別された説明や図だけが表示されます)
★ このメソッドは、V9.60.25.32 および V8.60.25.32 からベータ提供されたもので、この仕様は変更されることがあります。
◇ 機能および役割
このフォーム上にある全コントロールの Enabled メソッドを、直近の DisableObjectsInForm メソッド呼び出しの前の状態に戻す。
このメソッドは、かならず DisableObjectsInForm メソッドとペアで使用する。DisableObjectsInForm で (一時的に) 操作できないようにしたコントロールの状態をすべて復元するのがこのメソッドの役割である。
◇ 所属クラス (ツーピーススタイルの場合にこのメソッドが宣言されているクラス)
AppliTech.WorkFrame.FormBase (ローカル)
◇ 呼出し方
fB.EnableObjectsInForm()
(ただし fB は、クラス FormBase のインスタンス)
◇ 戻り値の型および意味
(戻り値なし)
◇ パラメタの型および意味
◇ 例外の発生 (誤った呼出しの際に発生する例外)
「DisableObjectsInForm が呼び出された後でないと使えません (EnableObjectsInForm)」
◇ 使用上のヒントと注意事項
EnableObjectsInForm メソッドを実行すると、データ項目の使用可能状態が DisableObjectsInForm 実行前の状態に戻る。このとき、フォーカスは DisableObjectsInForm 実行直前にフォーカスのあったデータ項目になる。 もし非 MANDALA コントロールがフォーカスを有していた場合、そのコントロールにはフォーカスが戻らず、MANDALA の入出力コントロールの中で最後にフォーカスを有していた項目に戻る。
DisableObjectsInForm メソッドと EnableObjectsInForm メソッドは、対になるように実行される必要がある。本メソッドを使用する場合の処理シーケンスは次のようになる。
これらは同一のフックメソッド内で完結していなければならない。
このシーケンスを守らず、EnableObjectsInForm を先に呼び出したり、DisableObjectsInForm を連続して呼び出したりすると実行時例外が発生する。
◇ 関連事項
フォーム上のすべてのコントロールを使用不可にするためには、DisableObjectsInForm メソッドを使用する。
◇ 使用例
Friend Function DisableAll_GetEvent(ByVal fB As FormBase) As Boolean 'ループ脱出フラグ AbortDisableAll = False 'ループ回数 Dim wk_imax As Integer = 1000 Dim wk_form As Fr_受注業務 = CType(fB.myForm, Fr_受注業務) 'Disable All ボタンのテキストを保存 Dim wk_svText As String = wk_form.Cm_DisableAll.Text 'コントロール無効化 fB.DisableObjectsInForm(New Object() {wk_form.Cm_EnableAll, wk_form.Mn_EnableAllMn}) 'ダミーウェイトのループ For i As Integer = 0 To wk_imax '脱出フラグのチェック If AbortDisableAll Then Exit For End If 'ボタンに状態を表示 wk_form.Cm_DisableAll.Text = i.ToString() + "/" + wk_imax.ToString() '別の GUI イベントを実行 System.Windows.Forms.Application.DoEvents() 'ウェイト用スリープ System.Threading.Thread.Sleep(10) Next 'コントロール無効解除 fB.EnableObjectsInForm() 'Disable All ボタンのテキストを復元 wk_form.Cm_DisableAll.Text = wk_svText Return FormBase.GETEVENT_Allow End Function
internal bool DisableAll_GetEvent(FormBase fB) { //ループ脱出フラグ AbortDisableAll = false; //ループ回数 int wk_imax = 1000; Fr_受注業務 wk_form = (Fr_受注業務)fB.myForm; //Disable All ボタンのテキストを保存 String wk_svText = wk_form.Cm_DisableAll.Text; //コントロール無効化 fB.DisableObjectsInForm(new object[] {wk_form.Cm_EnableAll, wk_form.Mn_EnableAllMn}); //ダミーウェイトのループ for (int i = 0; i < wk_imax; i++) { //脱出フラグのチェック if (AbortDisableAll) { break; } //ボタンに状態を表示 wk_form.Cm_DisableAll.Text = i.ToString() + "/" + wk_imax.ToString(); //別の GUI イベントを実行 System.Windows.Forms.Application.DoEvents(); //ウェイト用スリープ System.Threading.Thread.Sleep(10); } //コントロール無効解除 fB.EnableObjectsInForm(); //Disable All ボタンのテキストを復元 wk_form.Cm_DisableAll.Text = wk_svText; return FormBase.GETEVENT_Allow; }
public void run() {
abortDisableAll = false;
Fr_受注業務 wk_form = (Fr_受注業務)myFormBase.myForm.getJFrame();
String wk_svText = wk_form.Cm_DisableAll.getText();
int wk_imax = 500;
for (int i = 0; i < wk_imax; i++) {
if (abortDisableAll) {
break;
}
wk_form.Cm_DisableAll.setText(i + "/" + wk_imax);
wk_form.Cm_DisableAll.repaint();
try {
Thread.sleep(10);
}
catch (InterruptedException pm_exception) {
pm_exception.printStackTrace();
}
}
abortDisableAll = false;
wk_form.Cm_DisableAll.setText(wk_svText);
myFormBase.EnableObjectsInForm();
}