Axapta 如何向对话框中添加按钮并为单击事件创建方法

Axapta 如何向对话框中添加按钮并为单击事件创建方法,axapta,dynamics-ax-2009,Axapta,Dynamics Ax 2009,在Axapta中,如何向对话框中添加按钮并截获单击事件? 感谢选项1 对话框运行()中需要此行 您可以重载click事件 public void MyButton_clicked() { //bla } 选项2 将按钮操作代码放在一个单独的类中,并创建一个菜单选项,即“添加菜单项”按钮来执行代码 dialog.addMenuItemButton(MenuItemType::Action,"YourNewMenuItem"); 您使用哪种方法取决于您真正想要实现的目标。如果您不在RunBase

在Axapta中,如何向对话框中添加按钮并截获单击事件?
感谢选项1

对话框运行()中需要此行

您可以重载click事件

public void MyButton_clicked()
{
//bla
}
选项2

将按钮操作代码放在一个单独的类中,并创建一个菜单选项,即“添加菜单项”按钮来执行代码

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

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

如果您不在
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');
}

嗨@Andrew好建议!
private void myClickedMethod(FormButtonControl _formButtonControl)
{
    info('hello world');
}