0 / 0 / 0
Регистрация: 19.08.2009
Сообщений: 3

Как отследить вход в PictureBox курсора мыши с нажатой левой кнопкой

21.08.2009, 14:16. Показов 3754. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема такая. Необходимо сделать так, чтобы PictureBox меняла картинку при входе курсора мыши с нажатой левой кнопкой (например, с sap0 на sap1), при выходе курсора возвращалась прежняя картинка (sap0), а при отпускании левой кнопки на данном PictureBox картинка оставалась sap1.

Не могу придумать как добавить отслеживания состояния кнопки...

Пример кода:

pictureBox1.MouseEnter += new EventHandler(pictureBox1_MouseEnter);
pictureBox1.MouseLeave += new EventHandler(pictureBox1_MouseLeave);

private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
pictureBox1.Image = global::sap.Properties.Resources.sap1;

}

private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
pictureBox1.Image = global::sap1.Properties.Resources.sap0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2009, 14:16
Ответы с готовыми решениями:

Как отследить перемещение мыши с нажатой кнопкой за пределы PictureBox?
Всем здравствуйте. Есть отмасштабированное в логических координатах графическое окно с белым фоном. На нём рисуем красным цветом толстую...

Как отследить перемещение мыши с удерживаемой нажатой кнопкой?
В событии void __fastcall TForm1::Panel1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) Нет аргумента Button. ...

В рабочей части окна при движении мыши с нажатой левой клавишей мыши рисовать траекторию движения курсора мыши
В рабочей части окна при движении мыши с нажатой левой клавишей мыши рисовать траекторию движения курсора мыши.При нажатии правой клавиши...

5
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
21.08.2009, 16:00
делай через mousemove и mouseDown делай проверку в mousedown что есть кнопка левая, то ставить какую то переменную в состояние 1, дальше в mouseMove пиши если переменная равна 1 то делать тото тото, дело в том что mousemove работать будет только если мышка в поле картинки, тоесть если мышка выйдет за картинку то mousemove не будет происходить... mouseEnter это когда ты щелкаешь на картинке(на текстовом поле, например, заметнее это, ты щелкнул на нем, появился мигающий курсор, а когда щелкнул куда то еще то мигающий курсор исчез, это как раз mouseLeave)

Добавлено через 2 минуты 28 секунд
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool clicked;
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                clicked = true;
            }
        }
 
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (clicked)
            {
                //DoEvents
            }
        }
0
0 / 0 / 0
Регистрация: 19.08.2009
Сообщений: 3
21.08.2009, 18:04  [ТС]
Спасибо, но этот способ для моей задачи не подходит.
Как можно проверить состояние кнопки "нажата" или нет? Есть способы?

Предположим она уже нажата, и после этого курсор попадает на объект...
0
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
21.08.2009, 18:05
я же написал выше как проверить состояние нажата или нет, почему не подходит? объясните суть.
0
0 / 0 / 0
Регистрация: 19.08.2009
Сообщений: 3
21.08.2009, 19:05  [ТС]
На примере поля в ире "Сапер". Зажимаешь кнопку не на игровом поле, удержавая её перемещаемся на поле. В нажатом состоянии кнопки ячейки на поле изменяют форму при перемещении. Отпускаем кнопку происходит событие.

Мне нужно что-то вроде этого.
0
 Аватар для exe-dealer
308 / 161 / 11
Регистрация: 07.06.2009
Сообщений: 538
21.08.2009, 19:12
посмотри статические свойства класса Control, там есть свойство какое то для того что тебе нужно, (не помню уже) по названию поймешь.

Добавлено через 2 минуты 38 секунд
System.Windows.Forms.Control.MouseButton s

Добавлено через 1 минуту 57 секунд
На примере поля в ире "Сапер". Зажимаешь кнопку не на игровом поле, удержавая её перемещаемся на поле. В нажатом состоянии кнопки ячейки на поле изменяют форму при перемещении. Отпускаем кнопку происходит событие.
и да, лепить контролы не тру, я бы ячейки рисовал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2009, 19:12
Помогаю со студенческими работами здесь

При щелчке левой кнопкой мыши внутри окна в месте курсора отображается круг радиусом 5 единиц
Помогите пожалуйста решить. При щелчке левой кнопкой мыши внутри окна в месте курсора отображается круг радиусом 5 единиц. При...

При нажатой кнопке мыши обработать событие "вход курсора" на другой обьект
Задажа в том что нужно сделать такой принцип: опускаем клавишу миши и тягаем её по екрану (за ней следом склонированный обект на котором...

Как поменять указатель мыши при нажатой левой кнопке?
Мне надо, чтобы при нажатии левой кнопки мыши менялся значек указателя. Как это реализовать?

Событие мыши: перемещение мыши при нажатой левой клавиши
Подскажите, пожалуйста как реализовать следующее: При перемещении мыши при нажатой левой клавише (выделение текста) выводится сообщение...

Перемещение камеры при нажатой левой клавише мыши; проблемы с обзором мыши и видимостью указателя
Добрый день! У меня есть проект с кубом, кольцом и двумя кнопками из прошлой темы...


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

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

Новые блоги и статьи
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru