Поскажите, плиз, как в С# переопределить обработку прерываний.
Мне нужно добится следующей последовательности:
Две кнопки А и Б
1) наводим курсор на А
2) нажимаем А
3) перемещаем курсор с А на Б (при нажатой левой клавиши мишицы)
4) при отпускании баттона мышицы добжна сработать клавиша Б
Игрался с переопределением методов OnMouseUp и OnMouseDown, но желаемого ефекта не достиг.
Сенкс елот заранее
29.07.06 20:31: Перенесено модератором из '.NET' — AndrewVK
Во-первых, в .Net Нету никаких прерывайний.
Во-вторых, перепроэктируй интерфейс. То что ты хочешь сделать делать нельзя по чисто идеологическим сображениям: интерфейс должен вести себя предсказуемо, а не так как того захотел программист.
Здравствуйте, P_R_V, Вы писали:
P_R>Поскажите, плиз, как в С# переопределить обработку прерываний.
P_R>Мне нужно добится следующей последовательности: P_R>Две кнопки А и Б P_R>1) наводим курсор на А P_R>2) нажимаем А P_R>3) перемещаем курсор с А на Б (при нажатой левой клавиши мишицы) P_R>4) при отпускании баттона мышицы добжна сработать клавиша Б
P_R>Игрался с переопределением методов OnMouseUp и OnMouseDown, но желаемого ефекта не достиг.
P_R>Сенкс елот заранее
кажется это не сработает ... может в отработчик OnMouseDown написать код, перемещающий указатель на другую кнопку и вызывающий метод НАЖАТЬ КНОПКУ Б
??
Мне как раз и нужно изменить стандартный ход обработки ивентов.
Задачу можно описать так:
Пользователь работает з апликухой пользуясь сенсорным екраном и стилусом (таблетка от Тошыбы)
Причем работает в условиях тряски (в кабине движущегося транспорта)
Он поставил требование, чтобы все действия програма обрабатывала по ОнМаусАп, поскольку так легче ему справлятся с тряской.
Что бы было понятней — пример работы пользователя:
1) Он хочет нажать на кнопку В, но в условиях тряски у него стилус попадает не кнопку А
2) Не отрывая стилуса от екрана он перемещает его на кнопку В. Перемещать стилус, который коснулся екрана легче, так как есть точка опоры и фактор тряски уменшен.
3) Далее он поднимает стилус на кнопке В — при етом он должна сработать.
На вскидку. В обработчиках MouseUp всех кнопок (вообще один на всех обработчик, лучше задавать перебором кнопокв конструкторе формы, а не через дизайнер) получать элемент управления по координатам и, если это кнопка, вызывать PerformClick();
Здравствуйте, P_R_V, Вы писали:
P_R>Поскажите, плиз, как в С# переопределить обработку прерываний.
P_R>Мне нужно добится следующей последовательности: P_R>Две кнопки А и Б P_R>1) наводим курсор на А P_R>2) нажимаем А P_R>3) перемещаем курсор с А на Б (при нажатой левой клавиши мишицы) P_R>4) при отпускании баттона мышицы добжна сработать клавиша Б
P_R>Игрался с переопределением методов OnMouseUp и OnMouseDown, но желаемого ефекта не достиг.
P_R>Сенкс елот заранее
мишицы
откуда Вы, повелитель "мишицъ" и "баттонов"?
Re: Переопределение прерываний
От:
Аноним
Дата:
29.07.06 19:40
Оценка:
Чем больше читаю этот форум, тем больше утверждаюсь во мнении, что пишут сюда по большей части как бы это помягче сказать...
нужного выражения не подыскал...
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, P_R_V, Вы писали:
A>На вскидку. В обработчиках MouseUp всех кнопок (вообще один на всех обработчик, лучше задавать перебором кнопокв конструкторе формы, а не через дизайнер) получать элемент управления по координатам и, если это кнопка, вызывать PerformClick();
Может лучше задать вопрос не откуда, а кто?
Начинающий програмист на С#)))
Re[3]: Переопределение прерываний
От:
Аноним
Дата:
29.07.06 20:15
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним,
А>Может лучше задать вопрос не откуда, а кто? А>Начинающий програмист на С#)))
В связи с "мишицами" и "ефектати" нпрашивается вопрос откуда
Я тоже был начинающющм программистом, но все же ветку с названием "Переопределение прерываний" как-то не додумался создать в в GUI-форуме
прикольная задача ... первое что приходит на ум — это на каждый контрол на форме на эвент OnMouseUp повесить вызов функции ну допустим Command, котрая определяе положение курсора, а по положению определяет над каким контролом отпустили мышь, а вот тут начнется самое хитро-извращенское ... надо определить что это за контрол и выполнить соответствующее действие для него (речь о том что кроме кнопок есть и другие контролы и придется расчитывать какая часть контрола под курсором в данный момент... ну какая ячейка датагрида, строка листбокса ... и тд)
(сорри, кажется я получу премию за самый извращенский вариант решения ...)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Аноним,
А>>Может лучше задать вопрос не откуда, а кто? А>>Начинающий програмист на С#)))
А>В связи с "мишицами" и "ефектати" нпрашивается вопрос откуда А>Я тоже был начинающющм программистом, но все же ветку с названием "Переопределение прерываний" как-то не додумался создать в в GUI-форуме
злые Вы, посмотрите во сколько был пост добавлен 28.07 22:08, че вы хотите от чела, который даже в субботу ранимается работой ?
C++Builder6, C#.NET
Re[5]: Переопределение прерываний
От:
Аноним
Дата:
29.07.06 21:18
Оценка:
ZK>злые Вы, посмотрите во сколько был пост добавлен 28.07 22:08, че вы хотите от чела, который даже в субботу ранимается работой ?
Здравствуйте, P_R_V, Вы писали:
P_R>Что бы было понятней — пример работы пользователя: P_R>1) Он хочет нажать на кнопку В, но в условиях тряски у него стилус попадает не кнопку А P_R>2) Не отрывая стилуса от екрана он перемещает его на кнопку В. Перемещать стилус, который коснулся екрана легче, так как есть точка опоры и фактор тряски уменшен. P_R>3) Далее он поднимает стилус на кнопке В — при етом он должна сработать.
А как быть если он в условиях тряски попадает таки в заветную кнопку В, но на очередной кочке стилус съезжает на кнопку А и он его отпустил?
Ведь ситуация с уводом курсора за пределы элемента — это отмена нажатия.
... <<My edition based on RSDN@Home 1.2.0 alpha rev. 652>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[2]: Переопределение прерываний
От:
Аноним
Дата:
30.07.06 19:36
Оценка:
Здравствуйте, Аноним, Вы писали:
А все таки надо быть мягче...
Все люди братья и должны помогать друг другу )))