Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 19.08.2009
Сообщений: 3
1

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

21.08.2009, 14:16. Показов 3626. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2009, 14:16
Ответы с готовыми решениями:

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

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

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

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

5
34 / 21 / 2
Регистрация: 31.03.2009
Сообщений: 362
21.08.2009, 16:00 2
делай через 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  [ТС] 3
Спасибо, но этот способ для моей задачи не подходит.
Как можно проверить состояние кнопки "нажата" или нет? Есть способы?

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

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

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

Добавлено через 1 минуту 57 секунд
На примере поля в ире "Сапер". Зажимаешь кнопку не на игровом поле, удержавая её перемещаемся на поле. В нажатом состоянии кнопки ячейки на поле изменяют форму при перемещении. Отпускаем кнопку происходит событие.
и да, лепить контролы не тру, я бы ячейки рисовал.
0
21.08.2009, 19:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2009, 19:12
Помогаю со студенческими работами здесь

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

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

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

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


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

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