ICE23

ICE23 验证每个对话框的控件选项卡顺序。

ICE23 在 Dialog 表Control 表中验证以下内容:

  • Dialog 表中的每条记录都指定了对话框列所指定的对话框中存在的Control_First列中的控件。
  • 控件表中的每条记录都指定与控件列中列出的控件位于同一对话框中的Control_Next列中的控件,或Control_Next包含 Null 值。
  • 在控件表中从控件到控件的Control_Next项之后,会创建返回初始控件的单个闭合循环。 并非每个控件都需要在循环中,但循环必须传递每个控件,该控件在Control_Next列中有一个条目。

结果

如果控件的 Tab 键顺序未在对话框中形成单个闭合循环,则 ICE23 会发布错误消息。

ICE23 将为所示的示例发布以下错误消息。

  • Dialog1 没有Control_First。
  • 对话框对话框 2 的Control_First是指不存在的 ControlX。
  • Dialog3 在 ControlB 上具有死端选项卡顺序。
  • Dialog4 在 ControlC 处的 Tab 键顺序格式不正确
  • Dialog5 在 ControlC 上出现格式不正确的选项卡顺序。
  • Control_Next控件 Dialog6.ControlC 链接到未知控件。

对话框表(部分)

对话 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

 

若要修复这些错误,请记下上述表中的以下内容并做出指示的更改。

对话表中的每一行都没有在Control_First列中指定的控件。 将 Dialog1 记录的Control_First列更改为 Dialog1 中存在的控件。

对话框表中的每一行都没有在对话框中存在的Control_First列中指定的控件。 将 Dialog2 的Control_First列更改为 Dialog2 中存在的控件。

在控件表中Control_Next项之后,控件表中的项在每种情况下都不会创建一个闭合循环。 将 Dialog3 中 ControlB 的 Control_Next 列更改为 ControlA。

在控件表中的Control_Next项从控件到控件之后,不会在每个情况下返回初始控件。 更改 Dialog4 中 ControlC 的Control_Next列以引用 ControlA。

在控件表中从控件到控件的Control_Next项之后,不会通过对话框中具有Control_Next列中的条目的每个控件传递。 将 Dialog5 中 ControlC 的 Control_Next 列更改为 ControlD。

Control_Next不引用与控件列中列出的控件位于同一对话框中的有效控件。 更改 Dialog6 中 ControlC 的 Control_Next 列以引用 ControlD。

ICE 参考