次の方法で共有


ICE23

ICE23 は、各ダイアログ ボックスのコントロール タブ オーダーを検証します。

ICE23 は、Dialog テーブルの および Control テーブルで次を検証します。

  • Dialog テーブル内のすべてのレコードが、ダイアログ列で指定されたダイアログ ボックスに存在するControl_First列のコントロールを指定します。
  • Control テーブル内のすべてのレコードが、コントロール列に表示されているコントロールと同じダイアログにあるControl_Next列のコントロールを指定するか、または null 値を含むControl_Next。
  • コントロールテーブル内のコントロールからコントロールへのControl_Nextエントリの後に、最初のコントロールに戻る単一の閉じたループが作成されます。 すべてのコントロールがループ内にある必要はありませんが、ループは、Control_Next列にエントリがあるすべてのコントロールを通過する必要があります。

結果

ICE23 は、コントロールのタブ オーダーがダイアログ ボックスで単一の閉じたループを形成しない場合にエラー メッセージを投稿します。

ICE23 は、次の例のエラー メッセージを投稿します。

  • Dialog1 にはControl_Firstがありません。
  • ダイアログ ダイアログ 2 のControl_Firstは、存在しない controlX を参照します。
  • Dialog3 には、ControlB で行き止まりのタブ オーダーがあります。
  • ControlC で Dialog4 のタブ オーダーが正しくありません
  • ControlC で Dialog5 のタブ オーダーが正しくありません。
  • コントロール Dialog6.ControlC のControl_Nextは、不明なコントロールにリンクします。

ダイアログ テーブルの (一部)

] ダイアログ Control_First
Dialog1  
Dialog2 ControlX
Dialog3 ControlA
Dialog4 ControlA
Dialog5 ControlA

 

コントロール テーブルの (部分)

] ダイアログ コントロール Control_Next
Dialog1 ControlA  
Dialog1 ControlB ControlA
Dialog2 ControlA ControlB
Dialog2 ControlB ControlA
Dialog3 ControlA ControlB
Dialog3 ControlB  
Dialog4 ControlA ControlB
Dialog4 ControlB ControlC
Dialog4 ControlC ControlB
Dialog5 ControlA ControlB
Dialog5 ControlB ControlC
Dialog5 ControlC ControlA
Dialog5 ControlD ControlA
Dialog6 ControlA ControlB
Dialog6 ControlB ControlC
Dialog6 ControlC ControlX
Dialog6 ControlD ControlA

 

これらのエラーを修正するには、上記の表で次の点に注意し、示された変更を行います。

Dialog テーブルのすべての行に、Control_First列に指定されたコントロールがあるわけではありません。 Dialog テーブルの Dialog1 レコードのControl_First列を、Dialog1 に存在するコントロールに変更します。

ダイアログ テーブルのすべての行に、ダイアログ ボックスに存在するControl_First列にコントロールが指定されているわけではありません。 Dialog2 のControl_First列を、Dialog2 に存在するコントロールに変更します。

Control テーブル内のControl_Nextエントリに従ってコントロールからコントロールに移動しても、すべてのケースで閉じたループが作成されるわけではありません。 Dialog3 の ControlB のControl_Next列を ControlA に変更します。

Control テーブル内のControl_Nextエントリに従ってコントロールからコントロールに戻ると、すべてのケースで最初のコントロールに戻るわけではありません。 ControlA を参照するように Dialog4 の ControlC のControl_Next列を変更します。

Control テーブル内のControl_Nextエントリの後に、コントロールからコントロールに移動しても、ダイアログ ボックス内のすべてのコントロールがControl_Next列にエントリを持つわけではありません。 Dialog5 の ControlC のControl_Next列を ControlD に変更します。

Control_Nextは、Control 列にリストされているコントロールと同じダイアログ内にある有効なコントロールを参照しません。 Dialog6 の ControlC のControl_Next列を ControlD を参照するように変更します。

ICE リファレンス