JDMCODEBLOX Ответов: 1

Как добавить события мыши к метке?


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

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

я перепробовал все виды вещей, но безуспешно

1 Ответов

Рейтинг:
9

Wendelius

Почему бы не использовать Контроль.Событие MouseDown (System.Окна.Формы)[^]. При нажатии мыши запустите таймер и через 2,5 секунды отобразите окно сообщения.

Когда сообщение отображается ID или при отпускании муза, остановить таймер. Какое бы событие а ни произошло первым, оно завершает отсчет времени.

Что-то вроде

public partial class Form1 : Form {
   private Timer myTimer = new Timer();
   private DateTime startMoment;

   public Form1() {
      InitializeComponent();
      myTimer.Interval = 50;
      myTimer.Tick += MyTimer_Tick;
   }

   private void MyTimer_Tick(object sender, EventArgs e) {
      if (startMoment.AddMilliseconds(2500) < System.DateTime.Now) {
         myTimer.Stop();
         MessageBox.Show("Here we are");
      }
   }

   private void label1_MouseDown(object sender, MouseEventArgs e) {
      myTimer.Start();
      startMoment = System.DateTime.Now;
   }

   private void label1_MouseUp(object sender, MouseEventArgs e) {
      myTimer.Stop();
   }
}


JDMCODEBLOX

Большое спасибо я весь день этим занимаюсь:)

Wendelius

Пожалуйста :)

JDMCODEBLOX

знаете ли вы, как я могу сделать то же самое для сенсорного монитора?

Wendelius

Насколько я знаю, MouseDown должен быть поднят также для сенсорных экранов. WinForms не хватает многих сенсорных событий, но основные из них, которые такие же, как от мыши, должны работать.

JDMCODEBLOX

как избавиться от задержки на windows 7 touch?