我正在尝试清理我的编码实践,但遇到了我无法解决的问题。
使用严格的选项,您如何找到表单的实例并在所述实例上运行公共子?
例如,在库存包中,我有一个结帐零件的快捷方式,它会查找结帐表单是否打开并运行 Checkout.AddID(ID as Integer)。例如:
For Each Form In Application.OpenForms
If Form.Name = "FRMCheckout" Then
Form.AddIDToList(PartID)
End If
Next
这适用于选项严格关闭。但是,打开它并对其进行修改以适应例如:
For Each Form As Windows.Forms.Form In Application.OpenForms
' If Form.Name = "FRMCheckout" Then EDIT: Dropped this in leu of this:
If TypeOf (Form) Is FRMCheckout Then
Form.AddIDToList(Ctype(PartID, Integer))
End If
Next
抛出错误(显然).AddIDToList 不是 Forms.form 的成员。
For Each Form as ProgramNamespace.FRMCheckout
当 for 循环遇到正常形式时,更改为会抛出“无法将类型形式转换为 FRMcheckout”。
在不关闭选项严格的情况下完成此操作的方法是什么?