Member 12967064 Ответов: 0

Вопрос новичка, но как я узнаю, когда событие в другой форме закончилось?


У меня есть форма входа в систему, и пользователь входит в систему, проводя пальцем по своей RFID-метке.
У меня также есть раздел в приложении (win Forms), где пользователь-администратор может добавлять дополнительных пользователей в систему и назначать им тег(для входа в систему)

Мое событие TagRead запускается при входе в систему, и я не вижу смысла закрывать соединение с читателем после входа в систему только для того, чтобы снова открыть его в другой форме в том же приложении.

Проблема заключается в моей форме AddUser, когда я сканирую тег для проверки пользователю, событие TagRead запускается в форме входа в систему (где было установлено соединение)

Так что же мне делать?
Попробуйте прослушать окончание события в форме входа в систему, а затем прочитать данные тега на AddUser? могу ли я вызвать событие чтения в форме AddUser?

Что я уже пробовал:

Я прочитал о делегатах и попытался создать делегата в форме входа для события TagRead, а затем назначить это событие методу в форме AddUser

LOGIN_Frm
public delegate void EventHandler(object sender, TagReadEventArgs e);
        EventHandler EventHandlerDelegate;
         public event EventHandler Read
        {
            add
            {
                this.EventHandlerDelegate += value;
            }
            remove
            {
                this.EventHandlerDelegate -= value;
            }
        }
private void Reader_OnTagRead(object sender, TagReadEventArgs e)
        {
            tags.Add(e.RrfidTag);
            BindList();  
            
 if (this.EventHandlerDelegate != null)
            {
                
                EventArgs e2 = new EventArgs(); // pass along this new EventArgs object
                object[] args = new object[] { sender, e };

               
                foreach (Delegate handler in this.EventHandlerDelegate.GetInvocationList())
                {
                    handler.DynamicInvoke(args);
                    if (e.Handled)
                        break;
                }
            }
        }


Программы ФРМ
Login frmLogin = new Login();
 this.frmLogin.Read += new ControlTestApp.Login.EventHandler(this.Reader_OnTagRead);
 private void Reader_OnTagRead(object sender, TagReadEventArgs e)
        {
           //Do stuff here to get tag info

        }


но это все равно не запускает событие/метод в форме добавления пользователя


У меня нет события на AddUser, которое может вызвать событие при входе в систему, мне нужно либо войти, чтобы сказать: "Эй, я только что прочитал тег", либо мне нужно, чтобы AddUser сказал: "Вы уже прочитали тег? как насчет сейчас?"

nitrous_007

Привет,
Меня смущает описание вашей проблемы. Удалите все, что касается вашего конкретного приложения - помните, что вы не хотите рассказывать нам об этом. Придерживайтесь только описания кода. Например. У меня есть форма 1, которая открывает форму 2. Когда я нажимаю кнопку на Form2, я хочу, чтобы она вызвала четность в Form1 и т. д.

0 Ответов