Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 164

Как сделать чтобы выполнялось действие через определенное время после нажатия и отпускания ЛКМ?

12.01.2020, 11:03. Показов 3020. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
Подскажите пожалуйста какой код нужен что бы при нажатии и удерживании левой кнопки мыши минимум одну секунду потом отпустить и только после этого выполнялось определенное действие ? но не раньше одной секунды.
Не важно какое действие главное что бы она начала выполняться после одной секунды после удержании ЛКМ и отпускании
Заранее благодарен )))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2020, 11:03
Ответы с готовыми решениями:

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

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

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

7
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.01.2020, 11:07
Новичок0310, при событии MouseDown запускайте Stopwatch, при событии MouseUp останавливайте его, проверяйте сколько прошло времени и если секунда или более — выполняйте нужное действие

Добавлено через 1 минуту
Что-то типа этого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Stopwatch lkmDown = new Stopwatch();
 
void OnLeftMouseDown(object sender, EventArgs e)
{
   lkmDown.Restart();
}
 
void OnLeftMouseUp(object sender, EventArgs e)
{
   lkmDown.Stop();
   var elapsed = lkmDown.Elapsed;
 
   if (elapsed.TotalSeconds >= 1)
      DoStuff();
}
1
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 164
12.01.2020, 12:03  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
if (elapsed.TotalSeconds >= 1)
      DoStuff();
Вместо этого кода DoStuff() написал свое действие, но оно почему то не сработало

Добавлено через 36 секунд
Цитата Сообщение от kolorotur Посмотреть сообщение
if (elapsed.TotalSeconds >= 1)
И единицу тоже менял на 1000

Добавлено через 3 минуты
Мне нужно действие после нажатой ЛКМ (down) минимум на секунду и потом отпустить (up) что бы сработало автоматически 3 раза быстрое одиночное нажатие ЛКМ
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.01.2020, 12:52
Цитата Сообщение от Новичок0310 Посмотреть сообщение
Вместо этого кода DoStuff() написал свое действие, но оно почему то не сработало
На события-то вы подписались?

Цитата Сообщение от Новичок0310 Посмотреть сообщение
И единицу тоже менял на 1000
1000 секунд — это 16 с лишним минут.

Цитата Сообщение от Новичок0310 Посмотреть сообщение
Мне нужно действие после нажатой ЛКМ (down) минимум на секунду и потом отпустить (up) что бы сработало автоматически 3 раза быстрое одиночное нажатие ЛКМ
Это из первого сообщения понятно
Код выше должен делать именно это, при условии что вы подписались на соответствующие события.
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 164
12.01.2020, 13:09  [ТС]
Добавлено через 3 минуты
Цитата Сообщение от Новичок0310 Посмотреть сообщение
Мне нужно действие после нажатой ЛКМ (down) минимум на секунду и потом отпустить (up)
Или же хотя бы это действие привязать к двойному клику ЛКМ (DoubleClick)

Добавлено через 10 минут
Цитата Сообщение от kolorotur Посмотреть сообщение
1000 секунд — это 16 с лишним минут.
Я просто думал что это как в Timer 1000ms = 1 секунда
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.01.2020, 13:40
Цитата Сообщение от Новичок0310 Посмотреть сообщение
Я просто думал что это как в Timer 1000ms = 1 секунда
Проверяемое свойство называется TotalSeconds, что в переводе на русский означает общее количество секунд

Так что с событиями-то? Вы проверили привязку?
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 164
12.01.2020, 14:16  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Так что с событиями-то? Вы проверили привязку?
Дело в том что я создаю этот софт в форме (Form1) если я сделаю привязку к форме то эти команды будут работать только в форме, а мне нужно что бы они кликали туда куда курсор наведу в самой форме или вне формы то есть в любом месте
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.01.2020, 14:23
Цитата Сообщение от Новичок0310 Посмотреть сообщение
в самой форме или вне формы то есть в любом месте
Это уже совсем другой вопрос — как перехватывать события мыши в любом месте экрана.
Создавайте новую тему или ищите существующие — этот вопрос тут не раз задавался.

Сам код отслеживания, приведенный выше, остается без изменений.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.01.2020, 14:23
Помогаю со студенческими работами здесь

Сделать кнопку недоступной после нажатия на определённое время
Товарищи, как сделать чтобы после нажатии кнопки она стала недоступной в течении, например, 10 секунд, а после опоять стала доступной

Как в .bat сделать чтобы если сообщение не равно выбранному выполнялось действие
Привет! Помогите кто может Нужно чтобы если написанный текст не был равен "назад" он выполнял несколько команд, например "start...

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

Как в PyQt сделать так, чтобы код выполнился через определенное время?
Всем привет! Как в PyQt использовать таймер? этот код не работает: from PyQt5.QtCore import QTimer from PyQt5.QtWidgets import* ...

Хочу чтобы в Excele при перемещении курсора мыши к правой границе окна выполнялось определенное действие (отображение формы).
Хочу чтобы в Excele при перемещении курсора мыши к правой границе окна выполнялось определенное действие (отображение формы). Объектная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru