Export (0) Print
Expand All

ICE23

ICE23 validates the control tab order for each dialog box.

ICE23 validates the following in the Dialog table and Control table:

  • That every record in the Dialog table specifies a control in the Control_First column that exists in the dialog box specified by the Dialog column.
  • That every record in the Control table specifies a control in the Control_Next column that is on the same dialog as the control listed in the Control column, or Control_Next contains the Null value.
  • That following the Control_Next entries from control to control in the Control table makes a single, closed, loop that comes back to the initial control. Not every control needs to be in the loop, but the loop must pass through every control that has an entry in the Control_Next column.

Result

ICE23 posts an error message if the tab order of controls does not form a single closed loop in the dialog box.

Example

ICE23 would post the following error messages for the example shown.

  • Dialog1 has no Control_First.
  • Control_First of dialog Dialog2 refers to nonexistent control ControlX.
  • Dialog3 has dead-end tab order at control ControlB.
  • Dialog4 has malformed tab order at control ControlC
  • Dialog5 has malformed tab order at control ControlC.
  • Control_Next of control Dialog6.ControlC links to unknown control.

Dialog Table (partial)

DialogControl_First
Dialog1 
Dialog2ControlX
Dialog3ControlA
Dialog4ControlA
Dialog5ControlA

 

Control Table (partial)

DialogControlControl_Next
Dialog1ControlA 
Dialog1ControlBControlA
Dialog2ControlAControlB
Dialog2ControlBControlA
Dialog3ControlAControlB
Dialog3ControlB 
Dialog4ControlAControlB
Dialog4ControlBControlC
Dialog4ControlCControlB
Dialog5ControlAControlB
Dialog5ControlBControlC
Dialog5ControlCControlA
Dialog5ControlDControlA
Dialog6ControlAControlB
Dialog6ControlBControlC
Dialog6ControlCControlX
Dialog6ControlDControlA

 

To fix these errors note the following in the above tables and make the indicated changes.

Not every row in the Dialog table has a control specified in the Control_First column. Change the Control_First column of the Dialog1 record in the Dialog table to a control that exists in Dialog1.

Not every row in the Dialog table has a control specified in the Control_First column that exists on the dialog box. Change the Control_First column of the Dialog2 to a control that exists in Dialog2.

Following the Control_Next entries in the Control table from control to control does not make a closed loop in every case. Change the Control_Next column for ControlB in Dialog3 to ControlA.

Following the Control_Next entries in the Control table from control to control does not lead back to the initial control in every case. Change the Control_Next column for ControlC in Dialog4 to refer to ControlA.

Following the Control_Next entries in the Control table from control to control does not pass through every control in the dialog box having an entry in the Control_Next column. Change the Control_Next column for ControlC in Dialog5 to ControlD.

Control_Next does not refer to a valid control that is in the same dialog as the control listed in the Control column. Change the Control_Next column for ControlC in Dialog6 to refer to ControlD.

Related topics

ICE Reference

 

 

Community Additions

ADD
Show:
© 2014 Microsoft