我正在尝试在演示空间更改时运行事件处理程序方法。我不是最熟悉本机 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();
}