Имя: Пароль:
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) вынь костыли из головы. Использовать надо данные объекта.
AdBlock убивает бесплатный контент. 1Сергей