如何向对话框添加按钮并为click事件创建方法

时间:2012-06-26 08:15:06

标签: axapta dynamics-ax-2009

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

2 个答案:

答案 0 :(得分:3)

选项1;

对话框运行()

中需要此行
element.controlMethodOverload(true);

您可以重载点击事件;

public void MyButton_clicked()
{
//bla
}

选项2;

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

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

你使用的取决于你想要实现的目标。

答案 1 :(得分:2)

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