我正在创建一个插件,为此我已成功连接di和ui api。我正在通过代码手动创建所有内容(表单,按钮,文本框等)以进行学习,因为这是我的第一个。当我调试时,我可以看到我创建的所有字段的表单。这是表单创建的代码。
SAPbouiCOM.FormCreationParams oCreationParams = null;
oCreationParams = ((SAPbouiCOM.FormCreationParams(SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)));
oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed;
oCreationParams.UniqueID = "Form2";
oForm = SBO_Application.Forms.AddEx(oCreationParams);
oForm.Title = "Simple Form";
oForm.Left = 417;
oForm.Top = 520;
oForm.ClientHeight = 610;
oForm.ClientWidth = 770;
这是我创建按钮的方式
SAPbouiCOM.Button oButton = null;
oItem = oForm.Items.Add("Button1", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
oItem.Left = 6;
oItem.Width = 65;
oItem.Top = 51;
oItem.Height = 19;
oItem.Enabled = true;
oButton = ((SAPbouiCOM.Button)(oItem.Specific));
oButton.Caption = "Add";
问题是当我尝试在按钮单击事件中添加数据库中文本框的值时,我无法生成按钮单击事件。
据我所知,当我们从工具箱创建按钮并使用系统形式时,它会自动将按钮初始化为InitializeComponent()函数,并还会创建一个指向按钮单击事件的委托。我可以知道如何通过代码实现所有这些。 我试图通过我的手动代码初始化按钮,并且还创建了指向按钮单击功能的委托,但是我无法实现我的结果。
答案 0 :(得分:0)
尝试添加一种捕获SAP B1项目事件的方法,如下所示:
public void HandleItemEvent(ref SAPbouiCOM.ItemEvent pVal)
{
if (pVal.BeforeAction == false && pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED && pVal.ItemUID == "Button1")
{
// You code here
}
}