在Axapta中,如何在对话框中添加按钮并拦截click事件? 感谢
答案 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');
}