无法处理 SAP B1 中的按钮单击事件 UI API

Unable to handle a button click event in SAP B1 UI API

我从 SAP B1 UI API (9.0) 开始,我正在尝试处理按钮点击,但到目前为止没有任何运气。我就是这样做的(删除不必要的内容以缩短它):

static void Main(string[] args)
{
    SetApplication(args);

    var cParams = (FormCreationParams)App.CreateObject(BoCreatableObjectType.cot_FormCreationParams);
    cParams.UniqueID = "MainForm_";
    cParams.BorderStyle = BoFormBorderStyle.fbs_Sizable;

    _form = App.Forms.AddEx(cParams);
    /*Setting form's title, left, top, width and height*/

    // Button
    var item = _form.Items.Add("BtnClickMe", BoFormItemTypes.it_BUTTON);
    /*Setting button's left, top, width and height*/
    var btn = (Button)item.Specific;
    btn.Caption = "Click Me";
    _form.VisibleEx = true;

    App.ItemEvent += new _IApplicationEvents_ItemEventEventHandler(App_ItemEvent);
}

private static void SetApplication(string[] args)
{
    string connectionString = args[0];
    int appId = -1;
    try
    {
        var guiApi = new SboGuiApi();
        guiApi.Connect(connectionString);
        App = guiApi.GetApplication(appId);
    }
    catch (Exception e)
    { /*Notify error and exit*/ }
}

private static void App_ItemEvent(string FormUID, ref ItemEvent pVal, out bool BubbleEvent)
{
    BubbleEvent = true;

    if (FormUID == "MainForm_" && pVal.EventType == BoEventTypes.et_CLICK &&
        pVal.BeforeAction && pVal.ItemUID == "BtnClickMe")
    {
        App.MessageBox("You just click on me!");
    }
}

当我点击按钮时没有任何反应,这是正确的方法吗?我在处理程序方法中做了很多变化,但还没有。另一个细节是 visual studio 的调试器在插件启动后立即终止(也许这与我的问题有关)。

希望你能帮助我。提前致谢。

大卫.

自从应用程序停止 运行ning 以来,这个问题有两个可能的答案,具体取决于您喜欢使用什么。

如果您正在使用 SAPbouiCOM 库,您需要一种方法来保持应用程序 运行ning,我使用的方法是 windows 表格中的 System.Windows.Forms.Application.Run();组装.

如果您使用 SAPBusinessOneSDK 和 SAPbouiCOM.Framework 作为参考,您可以使用 App.Run();.

一旦您的设置代码具有 运行.

,这两个都需要被调用