如何在每次更改字段时使用 NotifyPSEvent 触发事件



我正在尝试在演示空间更改时运行事件处理程序方法。我不是最熟悉本机 AUTPS 方法的人,而是 PS。NotifyPSEvents似乎很有希望

我已经尝试了IBM网站上的一些在线示例,但我似乎无法弄清楚它们。

public partial class Form1 : Form
{
    public AutPS A_PS = new AutPS();
    public AutOIA A_OI = new AutOIA();
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        A_PS.SetConnectionByName("A");
        A_OI.SetConnectionByName("A");
        A_PS.NotifyPSEvent += A_PS_NotifyPSEvent();
        A_PS.RegisterPSEvent(true);
    }
    private AutPSTypeLibrary.IPSEvent_NotifyPSEventEventHandler A_PS_NotifyPSEvent()
    {
        if (A_PS.SearchText("GEEP", PsDir.pcSrchForward, 1, 1))
        {
            MessageBox.Show("BLAH"); return null;
        }
    }
}

我希望当 PS 注册字段更改时,我可以捕获它并记录更改的内容,但是它只会在启动我的程序时触发事件,而不管屏幕上有任何更新。随后,当我更新屏幕上的任何内容时,事件不会触发。我确定我只是误解了这种特定方法的工作原理,但是我已经搜索了一个星期,但没有真正的答案,我可以翻译得足够好,让它工作。任何信息将不胜感激!

想通了,我在事件上走在正确的轨道上,但错过了一点信息。 以下是对我有用的解决方案:

    private void Form1_Load(object sender, EventArgs e)
    {
        A_PS.SetConnectionByName("A");
        A_OI.SetConnectionByName("A");
        //Added a new A_PS_NotifyPSEvent handler and it works perfectly now. 
        A_PS.NotifyPSEvent += A_PS_NotifyPSEvent1; 
        A_PS.RegisterPSEvent(true);
        A_Reco.AddPS(A_PS);
    }
    private void A_PS_NotifyPSEvent1()
    {
        MessageBox.Show("BLAH");
        throw new NotImplementedException();
    }

相关内容

  • 没有找到相关文章

最新更新