4

在 Axapta 中,如何在对话框中添加按钮并拦截点击事件?谢谢

4

2 回答 2

4

选项1;

对话框 run() 中需要此行

element.controlMethodOverload(true);

你可以重载点击事件;

public void MyButton_clicked()
{
//bla
}

选项 2;

将你的按钮动作代码放在一个单独的类中,并创建一个菜单选项,添加一个菜单项按钮来执行你的代码;

dialog.addMenuItemButton(MenuItemType::Action,"YourNewMenuItem");

您使用哪个取决于您真正想要实现的目标。

于 2012-06-26T09:31:14.013 回答
4

如果您在RunBaseBatch框架之外,您可以通过以下方式进行操作:

请注意,这种方式也不需要虚拟菜单项按钮。

对话框创建:

private void dialog()
{
    Dialog                  dlg             = new Dialog();
    DialogGroup             dlgGroup;
    FormBuildGroupControl   buttonGroup;
    FormBuildButtonControl  buttonControl;

    dlgGroup        = dlg.addGroup('ButtonGroup');
    buttonGroup     = dlg.formBuildDesign().control(dlgGroup.formBuildGroup().id());
    buttonControl   = buttonGroup.addControl(FormControlType::Button, 'A Button');

    buttonControl.registerOverrideMethod(methodStr(FormButtonControl, clicked), 
                                         methodStr(MyClass, myClickedMethod), 
                                         this);

    dlg.run();
}

覆盖点击方法:

private void myClickedMethod(FormButtonControl _formButtonControl)
{
    info('hello world');
}
于 2015-04-24T20:17:50.690 回答