SAP商业一个C#开发,表单和按钮事件

时间:2018-09-06 10:27:31

标签: c# winforms sap

我正在创建一个插件,为此我已成功连接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()函数,并还会创建一个指向按钮单击事件的委托。

我可以知道如何通过代码实现所有这些。 我试图通过我的手动代码初始化按钮,并且还创建了指向按钮单击功能的委托,但是我无法实现我的结果。

1 个答案:

答案 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
    }
}