【问题标题】:How to jump all dialog BOX by code?如何通过代码跳转所有对话框?
【发布时间】:2016-10-04 03:01:59
【问题描述】:

有没有办法在标准代码中跳转所有对话框

例如,如果在TaxVatTable.validateWrite 中调用一个类TaxVATNumValidateES\validateVATNum 并且这里存在一个BOX,我不想显示,有没有解决方案?

是否存在在所有情况下都禁用对话框功能的方法?

【问题讨论】:

    标签: dialog axapta dynamics-ax-2012 x++


    【解决方案1】:

    可以,修改\Classes\Box中的相关方法即可。

    问题在于那些Box 消息是用户做出的决定。那么你怎么知道他们总是会选择什么?您可以返回 _defaultButton,并且在大多数情况下可能会正常。

    它们调用不同类型的表单,但您指的是\System Documentation\Classes\DialogBox,它是内核代码,因此您可以覆盖它的最低点是Box 类。

    您可以通过这样做来查看它们是如何短路的:

    if (clientKind() == ClientType::COMObject)
        return _defaultButton;
    

    编辑:

    我想补充一点,我不建议这样做。只需更改调用位置的代码即可。你会在功能上破坏框架的一部分。其他开发人员可能需要在某些时候调用此功能。

    它用于表格和所有地方。如果你只是让它总是返回Yes,你可能会导致各种各样的问题。

    【讨论】:

    • 谢谢@Alex Kwitny,这很无聊,但我必须找到所有有对话框的地方
    • 使用交叉引用,需要几秒钟才能找到。您可以按照此 msdn.microsoft.com/en-us/library/aa877386.aspx 构建它。然后你可以右击SystemDocumentationBox 类下的DialogBox 并说AddIns>Where Used,它会识别出它们被使用的每个地方。
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多