Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.51/41: Рейтинг темы: голосов - 41, средняя оценка - 4.51
 Аватар для AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109

Движение точки по графику в pictureBox при нажатии кнопок клавиатуры Left/Right

16.10.2012, 15:06. Показов 8025. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! У меня есть пикчебокс, в котором нарисованы оси, рисуется выбранный пользователем график. Нажатием мыши на любом месте пикчебокса появляется точка с координатами и сносками к осям. И нужно сделать что бы после этого можно было перемещаться по графику при нажатии клавиш клавиатуры соответственно Left/Right. Как это осуществить, не могу понять....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2012, 15:06
Ответы с готовыми решениями:

Как реализовать движение фигуры на canvas при нажатии на клавиши up, down, left, right?
как реализовать движение фигуры на canvas с помощью клавиш up, down, left, right? Проблема в том что не знаю как в фокус взять...

PictureBox должен начать движение при нажатии на кнопку
Добрый день, у меня проблема, не могу найти как создать анимацию картинки, то есть PictureBox должен начать движение при нажатии на кнопку,...

Движение картинки по диагоналям, при нажатии клавиш клавиатуры (без jQuery)
Всем доброго времени суток! Делаю так, чтобы изображение двигалось по canvas на сайте. Написал так, чтобы оно двигалось по сторонам...

29
 Аватар для AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
16.10.2012, 23:50  [ТС]
Студворк — интернет-сервис помощи студентам
forgergg, а куда нужно добавить эту строку?
C#
1
pictureBox2.KeyDown += new KeyEventHandler(pictureBox2_KeyDown);
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
17.10.2012, 00:11
AnutaMypka, если канва создавалась автоматически дизайнером, то в описание метода void InitializeComponent() - Form1.Desinger.cs. Если ручками, то сразу после создания экземпляра класса.

Добавлено через 1 минуту
Ну и стоит почитать про WinForms в c#.
0
 Аватар для AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
17.10.2012, 00:13  [ТС]
forgergg, в Form1.Desinger.cs у меня нет void InitializeComponent().. А где находится создание экземпляра класса? Я немного не понимаю...
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
17.10.2012, 00:24
AnutaMypka, должен быть, потому что в конструкторе основной формы он как раз и вызывается.
C#
1
2
3
4
5
6
7
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
     }
и инициализация класса тоже производится в InitializeComponent(). Ищи лучше.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.pictureBox2 = new System.Windows.Forms.PictureBox();
        }
 
        #endregion
 
        private System.Windows.Forms.PictureBox pictureBox2;
1
 Аватар для AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
17.10.2012, 00:33  [ТС]
Нашла, добавила в
C#
1
private void InitializeComponent()
C#
1
pictureBox2.KeyDown += new KeyEventHandler(pictureBox2_KeyDown);
Но всеравно не двигается курсор...
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
17.10.2012, 00:43
AnutaMypka, у меня есть 2 предположения:
1. Picture box не получил фокус и поэтому не срабатывает событие.
2. Ошибка где-то в коде.
Для первого варианта можно попробовать выбросить MessageBox в обработчике KeyDown, если не вылетит сообщение, то значит это так и есть - не в фокусе. Тогда можно либо программно выставить фокус, либо переписать те же обработчики KeyDown, только для Form1.
Для второго варианта надо искать ошибку. И если в первом варианте сообщение появилось, то тоже надо искать ошибку в коде.
0
 Аватар для AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
17.10.2012, 00:50  [ТС]
forgergg, а что нужно сделать что бы PictureBox был в фокусе?
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
17.10.2012, 01:20
AnutaMypka, вообщем наврал(доверяй, да проверяй. Да ?) я на счет KeyDown у PictureBox. Не получает этот контрол фокус ввода, в связи с чем нажатие клавиш не обрабатывает. Надо в событии KeyDown главной формы все это делать. Надо в InitializeComponent добавить строчку
C#
1
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
и изменить имя метода с PictureBox2_KeyDown на Form1_KeyDown. Так же надо установить(либо в дизайнере, либо прописать в InitializeComponent)
C#
1
this.KeyPreview = true;
Тогда форма будет получать нажатия клавиш, перед тем как отдать их контролу, на котором фокус ввода.
0
 Аватар для AnutaMypka
2 / 2 / 0
Регистрация: 03.10.2011
Сообщений: 109
17.10.2012, 01:41  [ТС]
Всеравно не работает...или я что то не понимаю...
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
17.10.2012, 03:32
AnutaMypka, вспомнил тут еще. После изменения координат точки в обработчике KeyDown, надо напомнить PictureBox, что бы он себя перерисовал.
В том же Form1_KeyDown, после логики, добавить
C#
1
pictureBox2.Refresh();
Должно помочь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2012, 03:32

Событие клавиатуры и движение pictureBox
всем привет мне нужно чтоб например при нажатие w (ц) pictureBox поднимался выше но у меня ничего не работает =( void...

Необходимо, чтобы при нажатии на одну из кнопок меню, фрейм с рекламой сворачивался, и разворачивался снова при нажатии на другую кнопку
Задача такая: Есть три фрейма (расположены друг под другом) - это реклама (вверху), меню (посередке) и главная страница (внизу)....

Движение PictureBox стрелками клавиатуры с учетом коллизий
Всем доброго здоровица!!! Помогите пожалуйста с задачей: На форме PB и лейблы (напр зелёные). PB движется по форме при нажатии клавишь...

При нажатии кнопок мыши выводить информацию о нажатии соответствующей кнопки
на с++ написать программу которая при нажатии кнопок мыши выводить информацию о нажатии соответствующей кнопки c++


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru