Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 63
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте, никак не могу разобраться с вызовом метода.
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2016, 22:22
Ответы с готовыми решениями:

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

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

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

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

7
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
11.05.2016, 22:56 2
Анна Протасова, зачем вам вручную вызывать эти методы? Они явно не для этого,а для обработки соответствующих событий. Если вы сами создадите объект ManipulationStartingEventArgs и будете с ним что-то делать в данных методах, то смысла в этом не будет абсолютно никакого.
0
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 63
11.05.2016, 23:05  [ТС] 3
Что я хочу сделать - у меня имеется колесо фортуны так сказать, хочу реализовать чтобы была игра "с компьютером", следовательно один раз я вращаю вручную - все работает, а следующий раз должен крутить компьютер, т.е как будто программно вызвать те же методы
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
11.05.2016, 23:25 4
Сделайте метод, который вращает, и вызывайте его как по событию, так и напрямую. Аргументы событий в нем использовать не надо.
1
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 63
12.05.2016, 00:02  [ТС] 5
я не могу создать другой метод, чтобы объединить эти генерируемые методы. могу отдельно сделать только поворот на угол, а инерции и кручению уже не будет
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
12.05.2016, 01:25 6
Анна Протасова, значит вы делаете что-то абсолютно неправильно. По всей видимости, у вас логика не вынесена в отдельный класс, а вся пишется в обработчиках событий, оттуда и такие проблемы. Выложите тогда проект, чтобы можно было посмотреть о чем речь.
0
Эксперт .NET
17689 / 12874 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2016, 17:19
Помогаю со студенческими работами здесь

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

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

Вызов события из другого
Есть событие: private void Form1_Resize(object sender, EventArgs e) { ...

Вызов события _KeyPress
Добрый день! Форма с кнопками, текстовое поле. Код написан для события Form1_KeyPress....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru