フック一覧 SList (項目フック) 前の項目フック 次の項目フック

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

SList (選択リスト) 項目フックメソッド

役割 (この項目フックメソッドに委託されている処理)

この項目にインプットすべきデータの選択候補一覧 (選択リスト) を表示してインプットを受け付ける。

配置 (ツーピーススタイルの場合にこの項目フックメソッドをどこに配置できるか)

ローカルピースに配置するか、または配置しない。セントラルピースに配置することは禁止されている。

代表的な書き方 (詳しい構文はフックメソッドの書き方を参照)

VB での書き方:
 Friend Function SList(パラメタ宣言列) As 型名
 または
 Friend Function 項目略称_SList(パラメタ宣言列) As 型名

C# での書き方:
 internal 型名 SList(パラメタ宣言列)
 または
 internal 型名 項目略称_SList(パラメタ宣言列)

Java での書き方:
 型名 SList(パラメタ宣言列)
 または
 型名 項目略称_SList(パラメタ宣言列)

なお、フック名としては、SList の他に選択リストを用いることができる。

呼び出される契機 (以下が切っ掛けとなりこのフックメソッドが呼び出される)

アプリ操作者からこの項目に対して SList 指示がなされたとき。

この項目に対する SList 指示とは、この項目にカーソルがあるときに、アプリ操作者がボタン Cm_SList をクリックすること、またはメニュー項目 Mn_SList をクリックすることか、これに相当する操作 (対応するショートカットキーの押下) をすること、または SList に対応づけられたファンクションキーを押下することを意味する。あるいは、この項目にカーソルがあるかないかに関係なく、この項目の項目略称のついた Cs_項目略称 という名前のボタンをクリックすることを意味する。

なお、Cs_項目略称 については、マニュアル 「MANDALA.net 基本仕様」 の既定義指示コントロールの説明を参照してください。

戻り値の意味とデフォルト動作 (戻り値による ItemBase への伝言)

選択候補一覧 (選択リスト) から選ばれた値 (数値または文字列など)。

ItemBase.SLIST_NoValue (= Nothing): 選択されなかった場合、すなわちキャンセルされた場合は Nothing 値を設定してください。

デフォルト動作: なし。

代行メッセージ (処理の流れに応じて発せられるメッセージ; カスタマイズ可能)

(関係する代行メッセージなし)

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

fB.sListCom は、入力候補のリストから選択処理を行うフォーム (入力候補一覧のフォーム) とそれを呼び出すフォームと間の通信領域である。SList フックメソッドが呼び出された時点では、fB.sListCom の値は Nothing (null) になっている。入力候補一覧のフォームでは、選択候補一覧から選ばれた値 (数値または文字列など) を設定してください。また、選択されなかった場合、すなわちキャンセルされた場合は Nothing (null) 値を設定してください。

SList 指示のためのコントロールとしては、メニュー項目またはファンクションキーを用いることがお勧めである。ボタンコントロールを用いると、次の点に注意する必要がある。すなわち、インプット途中の状態で、ボタンコントロールをクリックすると、ボタンコントロールにフォーカスが移る際に Check フックメソッドが呼び出されることに注意が必要である。そして、その際に Check フックメソッドでエラーと判定されると (入力途中だとエラーと判定されがち)、その項目がエラー表示に変わる。

一般に、インプット途中の状態で、ボタンコントロールをクリックすると、Check フックメソッドが呼び出された後に SList フックメソッドが呼び出されることになる。ただし、ボタンコントロールとして CommandButton を用いると、その指示が有効にならないことがある (つまり、SList フックメソッドが呼び出されないことがある)。

SList フックメソッドの中で、もしもインプット途中の項目の値を参照することが必要な場合 (通常はこのような必要性はない) には、コントロールの値を直接参照するようにしてください。すなわち、次のようにしてください。

Friend Function DataItem_SList(ByVal Ct_DataItem As Control) As 型名
    ... = CType(Ct_DataItem, TextBox).Text
    ...

End Function ' DataItem_SList
internal 型名 DataItem_SList( Control Ct_DataItem ) {
    ... = ((TextBox) Ct_DataItem).Text;
    ...

} // DataItem_SList
型名 DataItem_SList( Control Ct_DataItem ) {
    ... = ((JTextField) Ct_DataItem).getText();
    ...

} // DataItem_SList

関連事項

この項目のインプット情報ではなく、関連情報を表示する項目フックメソッドに RelInf がある。

項目に値を設定する役割を果たす項目フックメソッドには、この他に Derived, DerivedLC, Furigana, InitVal, InitValLC, Term がある。また、パラメタに ByRef 指定をした Check 系の項目フックメソッドによっても項目に値を設定することができる。

項目に値を設定する役割を果たす項目フックメソッドには、この他に Derived, DerivedLC, Furigana, InitVal, InitValLC, Term がある。

使用例

' 発注元コードの入力候補一覧を表示する。
Friend Function 選択リスト(ByVal fB As FormBase, ByVal iB_発注元コード As ItemBase) As String
    Dim 発注元コード選択リスト As SListBase12 = New SListBase12(fB, iB_発注元コード)
    ' 
    Dim wk_DialogResult As DialogResult = 発注元コード選択リスト.ShowDialog(fB.myForm)
    If Not (fB.sListCom Is Nothing) Then
        Return CType(fB.sListCom, String)
    Else
        Return Nothing
    End If
End Function ' 選択リスト
// 発注元コードの入力候補一覧を表示する。
internal string 選択リスト( FormBase fB, ItemBase iB_発注元コード ) {
    SListBase12 発注元コード選択リスト = new SListBase12(fB, iB_発注元コード);
    // 
    DialogResult wk_DialogResult = 発注元コード選択リスト.ShowDialog(fB.myForm);
    if (!(fB.sListCom == null)) {
        return (string)fB.sListCom;
    }
    else {
        return null;
    }
} // 選択リスト
// 発注元コードの入力候補一覧を表示する。
String 選択リスト( FormBase fB, ItemBase iB_発注元コード ) {
    SListBase12 発注元コード選択リスト = new SListBase12(fB, iB_発注元コード);
    // 
    DialogResult wk_DialogResult = 発注元コード選択リスト.showDialog(fB.myForm);
    if (!(fB.sListCom == null)) {
        return (String) fB.sListCom;
    } else {
        return null;
    }
} // 選択リスト