Имя: Пароль:
IT
Админ
Как на C# правильно обработать долгое нажатие на кнопку?
,
0 D_Pavel
 
25.03.16
10:12
Под винду программку пишу на MS VS C#

Есть кнопка, у нее перехватывается событие Click.

Я добавил событие Holding - это когда долго держишь кнопку и не отпускаешь.

Но после события Holding срабатывает еще и событие Click, а это не правильно. Должно срабатывать только одно событие: либо Click, либо Holding, смотря как долго держишь кнопку.

А теперь самое главное в этом деле: вопрос: как это сделать? Я придумал добавить переменную флаг что сработало событие Holding, и добавить условие в событие Click проверяющее эту переменную. Но это же дебильное решение, так никто не делает.
1 D_Pavel
 
25.03.16
10:13
+(0) Забыл уточнить, Click срабатывает при отпускании кнопки, а не при нажатии.
2 xxTANATORxx
 
25.03.16
10:15
как хорошо что 1Ска не страдает болезнями нажатий на клавиши
3 D_Pavel
 
25.03.16
10:16
(2) да, на 1с я бы эту задачу гораздо быстрее решил. Дурацкая С#
4 Локи-13
 
25.03.16
10:16
(0) вроде норм вариант

а зачем тебе и то и другое? отслеживай только холд, клик будет холд меньше секунды напрмер
5 ObjectRelation Model
 
25.03.16
10:25
добавь флаг в холдинг, в клик проверяй его, потом сбрасывай
6 ObjectRelation Model
 
25.03.16
10:26
(2)(3) шутка юмора?
7 Garykom
 
гуру
25.03.16
10:28
(0) Есть 2 события у кнопки точнее даже 3

1. Нажатие
2. Отпускание
3. Клик (нажатие и отпускание)

Ловишь 1, счетчик, ловишь 2, как поймал счетчик стоп. Смотрим
8 D_Pavel
 
25.03.16
10:28
(4) Если отслеживать только холд, то придется мерить время. А если нажатие будет очень короткое (меньше пол секунды например), то холд вообще не сработает
9 Serginio1
 
25.03.16
10:28
(3) в 1С есть Holding?
(5) +
10 Garykom
 
гуру
25.03.16
10:29
(0) И это у тя надеюсь обычные WinForms?
11 D_Pavel
 
25.03.16
10:30
(7) Это еще счетчик делать. Очень плохой варик
12 Лефмихалыч
 
25.03.16
10:30
(0) в чем проблема-то? не обрабатывай click, если ранее стрельнуло holding
13 Лефмихалыч
 
25.03.16
10:31
(11) нет, это тебе в обработчике click надо знать, стрельнул перед ним holding или нет
14 Кирпич
 
25.03.16
10:32
(0) "Но это же дебильное решение, так никто не делает"
Ну вот как ты определил, что это дебильное решение и что так никто не делает?
15 D_Pavel
 
25.03.16
10:32
(13) Ну да, глобальную переменную использовать. Я же писал в (0), плохой варик
16 D_Pavel
 
25.03.16
10:33
(14) Потому что использовать глобальную переменную для этого плохой тон
17 Кирпич
 
25.03.16
10:35
(16) Да с чего ты взял, что это плохой тон. Делай как в (0) и не парься.
18 D_Pavel
 
25.03.16
10:35
Короче сам разобрался. Вместо Клик заюзал эвент Тап.
Тап файрится онли при шорт клике. При лонг клике такой эвент не файрится вообще.
Всем спасибо, топик можно закрыть.
19 Кирпич
 
25.03.16
10:35
ну или пиши письма в микрософт, чтобы они сделали как ты хочешь.
20 NcSteel
 
25.03.16
10:37
(9) Да.
21 ObjectRelation Model
 
25.03.16
10:41
(15) не глобальную, а поле класса, йопта!
22 D_Pavel
 
25.03.16
10:42
(21) Называй то что видно вне обработчиков событий как хочешь, суть от этого не меняется.
23 ObjectRelation Model
 
25.03.16
10:45
(22) меняется, поле объекта индивидуально для каждого объекта, а глобальная переменная она одна
если объектов больше одного, то будут коллизии
это называется инкапсуляция, приватное поле объекта видно только внутри класса (его методов)
24 DDwe
 
25.03.16
10:48
(23) Он же 1с-ник, чего ты ему объясняешь....
25 Serginio1
 
25.03.16
10:49
(18) Главное, что в 1С таких ошибок быть не может!
26 ObjectRelation Model
 
25.03.16
10:50
(24) ну даже в 1С можно делать приватные поля формы))
27 D_Pavel
 
25.03.16
10:50
(23) Не может суть объекта поменяться от того как разные люди называют один и тот же объект.
Я поле класса и имел в виду изначально.
28 DDwe
 
25.03.16
10:53
(27) Что-ты там имел, ни кому не ведомо, не оправдывайся.
29 D_Pavel
 
25.03.16
10:54
(24) Я больше не 1С-ник, после того как заказы на C# стали приносить в разы больше прибыли. Сейчас делаю крупный проект для канадской компании, платят в баксах. В рублях получается ОООчень много.
30 ObjectRelation Model
 
25.03.16
10:55
(29) в сантиметрах сколько? ))
31 DDwe
 
25.03.16
10:55
(29) Вот врет и не краснеет )))
32 Broadbread
 
25.03.16
10:56
Баксы - это баксы, или что-то другое?
33 D_Pavel
 
25.03.16
10:56
(30) Если тысячными купюрами, то пачка в сантиметр толщиной получается.
34 Господин ПЖ
 
25.03.16
10:56
кто ж тебя к ним подпустил...
35 Smile 8D
 
25.03.16
10:56
(29) Т.е. они пока не знают, что ты даже не можешь нажатия на кнопку нормально обработать и спрашиваешь про это на непрофильном форуме? Это сложно назвать постоянным доходом.
36 Господин ПЖ
 
25.03.16
10:57
я все понять не мог где он хочет "глобальный счетчик" залудить и почему его так корежит
37 DDwe
 
25.03.16
10:57
(35) +100500 ))))
38 D_Pavel
 
25.03.16
10:57
(34) Этих иностранцев не понять. Хотя нет, можно понять. Для них такая зарплата которую они мне платят - это стипендия их студента, наверное. А для нас это бабло как три зарплаты хорошего одинесника.
39 Господин ПЖ
 
25.03.16
10:57
[null,null,null,null,null...]
40 ObjectRelation Model
 
25.03.16
10:57
(33) ну это ниочем, учись у Гений 1С
он говорит, что у него 14 см
41 D_Pavel
 
25.03.16
10:58
(35) Они знают что я начинающий прог, но согласны на это, потому что у себя за такие деньги они могут найти человека еще хуже чем я
42 Mikeware
 
25.03.16
10:58
(41) а такое возможно?
43 Nuobu
 
25.03.16
10:59
В чем проблема завести переменную и отслеживать её в событии ОнКлик?
44 Кирпич
 
25.03.16
10:59
(35) а им пофигу. им главное чтобы работало и в срок и за дешево. бизнес есть бизнес.
45 Господин ПЖ
 
25.03.16
10:59
к вопросу индусов и горстей риса...
46 ObjectRelation Model
 
25.03.16
10:59
(39) улыбнуло
47 D_Pavel
 
25.03.16
10:59
(42) Да их там полно.
48 D_Pavel
 
25.03.16
11:01
(45) Ну сейчас индусы не такие выгодные стали как русские, из-за курса рубля. Щас активно нанимают русских прогов. Пакистанцы пока еще конкурируют, но уже тоже сдают свои позиции русским. Россия вперед!
49 D_Pavel
 
25.03.16
11:04
Короче, ребята, ждите скоро в виндоус сторе новое универсальное приложение. Ссылку дам когда будет опубликовано.
50 Smile 8D
 
25.03.16
11:04
(48) 1см 1000руб купюр - это 40 тысяч. С каких пор это стало "ооочень много" и "три зарплаты хорошего одинесника"?
Так же это 570 баксов - индусы и китайцы стоят гораздо дешевле. Что-то у тебя все не сходится.
51 Broadbread
 
25.03.16
11:05
Интересная идея: ивент по морзянке. Юзерам понравится.
52 Aleksandr N
 
25.03.16
11:05
(50) Платят в баксах, Карл!!!
53 Smile 8D
 
25.03.16
11:06
(52) И что? Он пишет конкретно про тысячные рублевые купюры.
54 D_Pavel
 
25.03.16
11:06
(50) не говори то чего не знаешь.
1. Это должны быть очень мятые купюры, не лежавшие в кошельке, только тогда получится 40. А новыми из банкомата гораздо больше.
2. Китайцы стоят гораздо дороже индусов, и заметно дороже русских. Ты не знаешь текущих уровней оплаты китайцев.
55 Кирпич
 
25.03.16
11:09
(54) откуда ты всё знаешь про китайцев и индусов? ещк "виндоус сторе" какой то? Что такое "виндоус сторе"? Магазин какой то чтоли?
56 ObjectRelation Model
 
25.03.16
11:10
(52) в баксах нет 1000 купюры
57 D_Pavel
 
25.03.16
11:10
(55) Да магазин
58 Garykom
 
гуру
25.03.16
11:10
(49) Насчет виндоус сторе... Думаешь его кто то кроме тестеров МС открывает?
59 D_Pavel
 
25.03.16
11:10
(56) Я в рублях снимаю с банкомата.
60 D_Pavel
 
25.03.16
11:11
(58) Многие открывают. Приложения же где-то нужно брать для тех у кого новая винда типа 8.1 или 10. С трентов не все умеют качать, да и сложно стало
61 Smile 8D
 
25.03.16
11:12
(54) Прошу прощения, это видимо только ваша прерогатива.
62 ObjectRelation Model
 
25.03.16
11:12
(59) ну то есть это как и сказано в (50) около 40 тыщ руб?
63 Fish
 
25.03.16
11:13
(56) Есть и больше: " Кроме перечисленных, существуют еще и банкноты номиналом 500, 1000, 5000, 10 000 и 100 000 долларов США."
http://odollarah.ru/monety-i-banknoty-ssha/1000-dollarov.html
64 ObjectRelation Model
 
25.03.16
11:13
+(62) ну хорошо, пусть будут 60 тыщ
65 ObjectRelation Model
 
25.03.16
11:14
(63) и они вот так вот свободно ходят? они у коллекционеров давно все
66 Fish
 
25.03.16
11:15
(65) Нет, их уже не выпускают, но они "по-прежнему платежеспособны, как и любая долларовая купюра, выпущенная в 1861 г. и позже."
67 Smile 8D
 
25.03.16
11:15
(63) Давайте не будем вырывать фразы из контекста. Не может наш "дорогой" топикстартер получать зарплату тысячедолларовыми купюрами.
68 Локи-13
 
25.03.16
11:15
щас все 1сники ломанутся учить дотнет
69 Локи-13
 
25.03.16
11:15
(68) п.с. вангую )
70 Маратыч
 
25.03.16
11:16
(68) Ага, жабу-то уже изучили %))
71 ObjectRelation Model
 
25.03.16
11:18
так, у кассира не оказалось пачки свежих купюр, но она сказала примерно 1.5 см пачка, значит у тебя 1 см это 70 тыщ примерно
72 D_Pavel
 
25.03.16
11:18
(64) Даже не старайся уменьшить мою зарплату, ничего не сможешь сделать как ни пиши.
73 Smile 8D
 
25.03.16
11:19
(72) Ты лучше расскажи как ты 300 тысяч (а это минимум для 3х зарплат хорошего одинэсника) ужал в 1см?)
74 D_Pavel
 
25.03.16
11:21
(73) Легко. Банкомат выдал новенькие, никем не жатые банкноты, я их еще спрессовал, и получилось как раз около 1см
75 Nuobu
 
25.03.16
11:24
(74) Не знаю, как сильно ты их сжимал, но у меня в один сантиметр влазит 100 гривневых купюр. Которые только из банка, перетянуты банковской лентой. Думаю, что там степень сжатия сильнее твоего.

Может, ты имеешь ввиду сантиметра три?
76 D_Pavel
 
25.03.16
11:29
Нет не три. Че пристали? Я не мерил линейкой. Просто запихал в кошелек, он не закрывался, я поскорей убежал от туда в машину и уехал чтобы не ограбили, а то народ пырился когда я бабло снимал.
77 DDwe
 
25.03.16
11:43
(76) Свисдабол.
78 Smile 8D
 
25.03.16
11:45
(76) Мы пристали потому что ты откровенно врешь и при этом еще других обвиняешь в не знании. Так порядочные люди не делают.
79 Лефмихалыч
 
25.03.16
11:48
(15) вынь костыли из головы. Использовать надо данные объекта.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.