Как начать мигать на отдельной записи при каждом ее нажатии
У меня есть таблица, которая состоит из нескольких строк записи.
Каждая запись имеет один индекс, где в соответствии с формулой триггера с таймером а будет выбран индекс. Каждый раз, когда этот индекс выбран, вся линия будет мигать в течение нескольких секунд с таймером B.
Например, когда триггер попадает в индекс "3", запись "3" будет мигать с таймером B. И в то же время, в пределах интервала, должен ли таймер триггера попадать в индекс "5", запись "5" также должна мигать.
Однако у меня есть проблема, чтобы сделать это. Когда по таймеру триггер попадет в другой индекс, предыдущая мигающая запись перестанет мигать и изменится на новую запись.
Как я могу поддерживать мигание в нескольких записях?
Функция запускается в & lt; checkstatusid>.
Что я уже пробовал:
private void checkstatusid(string statusid) { Int64 Status_id = Convert.ToInt64(statusid); if (displayquery.Contains(Status_id.ToString())) { switch (Status_id) { case 1: startCalling("1"); break; case 2: startCalling("2"); break; case 3: startCalling("3"); break; default: break; } } } private void startCalling(string statusid) { sound(statusid); blink(); } private int blinktimercount = 0; private void blink() { Blinking.Enabled = true; Blinking.Start(); currentblinking = Convert.ToInt16(dtqueue.Rows[i]["Runningnumber"]); } private void sound(string statusid) { Int64 Status_id = Convert.ToInt64(statusid); if (Status_id == 1) { try { string ApplicationPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); string SoundPath = ApplicationPath + "\\Resources\\sound1.wav"; System.Media.SoundPlayer simpleSound = new System.Media.SoundPlayer(SoundPath); simpleSound.Play(); } catch (Exception ex) { } } if (Status_id == 2) { try { string ApplicationPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); string SoundPath = ApplicationPath + "\\Resources\\sound2.wav"; System.Media.SoundPlayer simpleSound = new System.Media.SoundPlayer(SoundPath); simpleSound.Play(); } catch (Exception ex) { } } if (Status_id == 3) { try { string ApplicationPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); string SoundPath = ApplicationPath + "\\Resources\\sound3.wav"; System.Media.SoundPlayer simpleSound = new System.Media.SoundPlayer(SoundPath); simpleSound.Play(); } catch (Exception ex) { } } } private void BlinkTimer_Tick(object sender, EventArgs e) { animateBlinking(currentblinking.ToString()); } private void animateBlinking(string selected) { int listviewcounter = 0; for (listviewcounter = 0; listviewcounter < lvAppmt.Items.Count; listviewcounter++) { if (lvAppmt.Items[listviewcounter].SubItems[0].Text == selected) { if (blinktimercount % 2 == 0) { lvAppmt.Items[listviewcounter].BackColor = Color.Lime; lvAppmt.Items[listviewcounter].ForeColor = Color.Black; } else { lvAppmt.Items[listviewcounter].BackColor = Color.Black; lvAppmt.Items[listviewcounter].ForeColor = Color.White; } blinktimercount = blinktimercount + 1; } } if (blinktimercount == 60) { Blinking.Stop(); blinktimercount = 0; listviewcounter = 0; lvAppmt.Items[listviewcounter].BackColor = Color.Black; lvAppmt.Items[listviewcounter].ForeColor = Color.White; } }