Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Анна Протасова
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 63
1

Ручной вызов обработчика события

11.05.2016, 22:22. Просмотров 628. Ответов 7
Метки нет (Все метки)

Здравствуйте, никак не могу разобраться с вызовом метода.
C#
1
2
3
4
5
6
void Grid_ManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
  e.Mode = ManipulationModes.Rotate;
}
void Grid_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{....}
Нужно программно вызвать эти два метода, но не знаю как определить второй параметр - ManipulationStartingEventArgs
Вызываю так
C#
1
2
3
4
5
MainWindow mainWindow = new MainWindow();
ManipulationDeltaEventArgs e1 = null;
ManipulationStartingEventArgs e2;
mainWindow.Grid_ManipulationStarting(sender, e2);
mainWindow.Grid_ManipulationDelta(sender, e1);
Логично ругается на значение ManipulationStartingEventArgs = null
ManipulationStartingEventArgs e2 = new ManipulationStartingEventArgs(); говорит что не принимает 0 аргументов
Перепробовала все, ничего не помогает
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2016, 22:22
Ответы с готовыми решениями:

Вызов обработчика события
есть два обработчика события button1.Click и button2.Click . Как из button1.Click вызвать...

Вызов события из другого события по нажатию клавиши
Всем привет! Есть кнопка на Windows.Forms, к ней привязано событие. Хочется, чтобы еще и по нажатию...

Использование первого аргумента обработчика события
Есть решение пункта 7, но не понимаю, как сделать 8, помогите. 7. Создать приложение, в котором...

Асинхронный вызов обработчика кнопки
Здравствуйте. При нажатии на кнопку из datagridа экспортируются данные в excel. нужно, чтоб это...

Создание обработчика события нажатия кнопки мыши на форме
Здравствуйте. Подскажите, пожалуйста, как можно решить задачу: "Разместите на форме ряд...

7
EvilFromHell
956 / 853 / 346
Регистрация: 26.04.2012
Сообщений: 2,648
11.05.2016, 22:56 2
Анна Протасова, зачем вам вручную вызывать эти методы? Они явно не для этого,а для обработки соответствующих событий. Если вы сами создадите объект ManipulationStartingEventArgs и будете с ним что-то делать в данных методах, то смысла в этом не будет абсолютно никакого.
0
Анна Протасова
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 63
11.05.2016, 23:05  [ТС] 3
Что я хочу сделать - у меня имеется колесо фортуны так сказать, хочу реализовать чтобы была игра "с компьютером", следовательно один раз я вращаю вручную - все работает, а следующий раз должен крутить компьютер, т.е как будто программно вызвать те же методы
0
EvilFromHell
956 / 853 / 346
Регистрация: 26.04.2012
Сообщений: 2,648
11.05.2016, 23:25 4
Сделайте метод, который вращает, и вызывайте его как по событию, так и напрямую. Аргументы событий в нем использовать не надо.
1
11.05.2016, 23:25
Анна Протасова
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 63
12.05.2016, 00:02  [ТС] 5
я не могу создать другой метод, чтобы объединить эти генерируемые методы. могу отдельно сделать только поворот на угол, а инерции и кручению уже не будет
0
EvilFromHell
956 / 853 / 346
Регистрация: 26.04.2012
Сообщений: 2,648
12.05.2016, 01:25 6
Анна Протасова, значит вы делаете что-то абсолютно неправильно. По всей видимости, у вас логика не вынесена в отдельный класс, а вся пишется в обработчиках событий, оттуда и такие проблемы. Выложите тогда проект, чтобы можно было посмотреть о чем речь.
0
kolorotur
Эксперт .NET
12314 / 9800 / 2516
Регистрация: 17.09.2011
Сообщений: 16,671
Завершенные тесты: 1
12.05.2016, 11:14 7
Цитата Сообщение от Анна Протасова Посмотреть сообщение
могу отдельно сделать только поворот на угол, а инерции и кручению уже не будет
Инерция и кручение — точно такие же циферки, как и угол.
Получать эти циферки не обязательно от движения мыши — их, например, можно сгенерировать случайным образом в нужном диапазоне.
1
Анна Протасова
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 63
12.05.2016, 17:19  [ТС] 8
Всем спасибо за наводку, решила так:
C#
1
2
3
4
5
6
7
8
DoubleAnimation da = new DoubleAnimation();
da.From = 0;
da.To = 360;
da.Duration = new Duration(TimeSpan.FromSeconds(3));
da.RepeatBehavior = RepeatBehavior.Forever;
RotateTransform rt = new RotateTransform();
rectangle1.RenderTransform = rt;
rt.BeginAnimation(RotateTransform.AngleProperty, da);
Осталась проблема того, что теперь оно видимо перехватывает мои действия, т.е я вращаю (прикосновение-сдвигом),после по таймеру вращает компьютер, а потом я начинаю вращать - ничего не происходит, но срабатывает событие окончания моего действия
0
12.05.2016, 17:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2016, 17:19

Отмена обработчика события
Я разрабатываю калькулятор (все через это прошли наверно). Когда я в поле для ввода ввожу цифру на...

Как обратится к форме из обработчика события?
есть слушатель на завершение: WebClient user = new WebClient(); user.DownloadFileCompleted += new...

Лямбда обработчик события. Нужно вернуть значение вовне обработчика, во внешний код
Я хочу сделать как-то так: Uri GetUriBlaBlaBla() { var wb = new WebBrowser(); ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.