Событие C# не работает после первой формы с точками данных взгляда

Я делаю приложение Form, которое принимает движения глаз во время работы процесса и снова использует данные глаза для передачи следующей формы. Если я выполняю переход с данными движения глаз, "eyeTracker.GazeDataReceived + = EyeTracker_GazeDataReceived" работает только для первой формы.

private void Form7_Load(object sender, EventArgs e)
    {
        IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
        GazeData(eyeTracker);  
    }


private static void GazeData(IEyeTracker eyeTracker)
    {
        if (Scores.a1 == 0)
        {
            // Start listening to gaze data.
            eyeTracker.GazeDataReceived += EyeTracker_GazeDataReceived;
        }
        else
        {
            eyeTracker.GazeDataReceived -= EyeTracker_GazeDataReceived;
            OkudugunuAnlama1 okudugunuAnlama1 = new OkudugunuAnlama1();
            okudugunuAnlama1.ShowDialog();
            Form7 form7 = new Form7();
            form7.Visible = false;
        }

    }

private static void EyeTracker_GazeDataReceived(object sender, GazeDataEventArgs e)
     {
        IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();


        if (Scores.a1 == 0)
        {
            FileInfo file = new FileInfo(dosya_yolu);
            using (ExcelPackage excelPackage = new ExcelPackage(file))
            {
                ...// Some codes write the gaze data to exel 

            }

            Scores.i = Scores.i + 2;
        }
        else if (Scores.a1 == 1)
        {
            while (0.8 < e.LeftEye.GazePoint.PositionOnDisplayArea.X & e.LeftEye.GazePoint.PositionOnDisplayArea.X < 0.99)       //Kırmızı daireye yeterince baktı mı?
            {
                System.Threading.Thread.Sleep(3000); 
                GazeData(eyeTracker);

            }

        }

    }

Этот код запускается успешно, но после прохождения следующей формы, некоторые коды ниже, а не рабочее событие, запускают метод eyeTracker.GazeDataReceived + = EyeTracker_GazeDataReceived.

private void Form13_Load(object sender, EventArgs e)
    {
        IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();
        GazeData(eyeTracker);
    }


private static void GazeData(IEyeTracker eyeTracker)
    {

        if (Scores.b1 == 0)
        {
            //HERE not work
            eyeTracker.GazeDataReceived += EyeTracker_GazeDataReceived;
        }
        else
        {
            eyeTracker.GazeDataReceived -= EyeTracker_GazeDataReceived;
            OkudugunuAnlama2cs okudugunuAnlama2 = new OkudugunuAnlama2cs();
            okudugunuAnlama2.ShowDialog();

            Form13 form13 = new Form13();
            form13.Visible = false;
        }
    }


private static void EyeTracker_GazeDataReceived(object sender, GazeDataEventArgs e)
     {
        IEyeTracker eyeTracker = EyeTrackingOperations.FindAllEyeTrackers().FirstOrDefault();


        if (Scores.a1 == 0)
        {
            FileInfo file = new FileInfo(dosya_yolu);
            using (ExcelPackage excelPackage = new ExcelPackage(file))
            {
                ...// Some codes write the gaze data to exel 

            }

            Scores.i = Scores.i + 2;
        }
        else if (Scores.a1 == 1)
        {
            while (0.8 < e.LeftEye.GazePoint.PositionOnDisplayArea.X & e.LeftEye.GazePoint.PositionOnDisplayArea.X < 0.99)       //Kırmızı daireye yeterince baktı mı?
            {
                System.Threading.Thread.Sleep(3000); 
                GazeData(eyeTracker);

            }

        }

    }

Если вы делаете переход с помощью кнопок, коды работают. Но я должен сделать с очками взора. Пожалуйста, помогите о втором событии.

0 ответов

Другие вопросы по тегам