Событие 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);
}
}
}
Если вы делаете переход с помощью кнопок, коды работают. Но я должен сделать с очками взора. Пожалуйста, помогите о втором событии.