Как вы запускаете событие с помощью NotifyPSEvent при каждом изменении поля? - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь запустить методы обработчика событий в момент изменения пространства представления.Я не очень знаком с нативными методами 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 зарегистрирует изменение поля, я смог запечатлеть это и записать то, что было изменено, однако событие запускается только при запуске моей программы, независимо от того, что на экране обновляется.Впоследствии, когда я обновляю что-либо на экране, событие не срабатывает.Я уверен, что просто неправильно понимаю, как работает этот конкретный метод, но я искал неделю без реальных ответов, которые я могу перевести достаточно хорошо, чтобы он работал.Любая информация будет оценена!

1 Ответ

0 голосов
/ 05 февраля 2019

Понял, я был на правильном пути с событиями, но пропустил немного информации.ниже разрешение, которое работало для меня:

    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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...