Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2016, 20:30   #1
Maks3
Пользователь
 
Регистрация: 23.11.2014
Сообщений: 28
Восклицание Собственная кнопка из картинок

Пишу программу на C# Windows Form, не WPF. Понадобилась круглая кнопка, но перерисовывать стандартную в коде не продуктивно в моем случае. Сделал 3 картинки: первая показывается когда программа просто открыта, вторая показывается когда на кнопку(картинку) наводят курсор и третья показывается когда на эту кнопку нажимают. Возникла проблема, как сделать что-бы если на картинку нажали мышкой, а после увели курсор в другое место и отпустили кнопку снова загоралась первая картинка?
Для примера кидаю картинки кнопки в студии в том же порядке как писал выше. Мне надо примерно так же
Изображения
Тип файла: png 1.png (320 байт, 100 просмотров)
Тип файла: png 2.png (354 байт, 102 просмотров)
Тип файла: png 3.png (429 байт, 101 просмотров)
Maks3 вне форума Ответить с цитированием
Старый 26.09.2016, 22:25   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так а разве при зажатой кнопке вы не получаете событие выхода из кнопки?
или вы хоть именно до отпускания кнопки мыши?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.09.2016, 22:47   #3
Maks3
Пользователь
 
Регистрация: 23.11.2014
Сообщений: 28
По умолчанию

я перебрал все события у картинки, но не нашел такого события, которое выполнится когда я нажал ЛКМ вниз на картинке, затем увел курсор с этой картинки, а затем отпустить кнопку
Maks3 вне форума Ответить с цитированием
Старый 26.09.2016, 23:29   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

то есть вам важно именно отпускание кнопки?

я и спрашиваю, может вам достаточно выхода мыши за пределы картинки?(в любом случае, зажата кнопка или нет)
ну если нет, то попробуйте при MouseDown ставить на кнопку Capture=true, а в MouseUp Capture=false.
вроде оно если не ошибаюсь.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.09.2016, 23:40   #5
Maks3
Пользователь
 
Регистрация: 23.11.2014
Сообщений: 28
По умолчанию

сейчас у меня такой код:
Код:
private void pic1_MouseHover(object sender, EventArgs e)
        {
            pic1.Hide();
            pic2.Show();
        }

        private void pic2_MouseLeave(object sender, EventArgs e)
        {
            pic2.Hide();
            pic1.Show();
        }

        private void pic2_MouseDown(object sender, MouseEventArgs e)
        {
            pic1.Hide();
            pic2.Hide();
            pic3.Show();
        }
При запуске формы у меня показана pic1, при наведении на нее мыши показывается pic2, при нажатии клавиши мыши вниз надо показать pic3, если pic3_MouseUp произойдет в пределах картинки, то выйти из приложения, если за пределами, то вернуть pic1. Не знаю, как еще объяснить, посмотрите как реагируют на эти действия кнопки закрытия/сворачивания в программах или в проводнике windows
Maks3 вне форума Ответить с цитированием
Старый 26.09.2016, 23:44   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

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

вы бы лучше взяли за основу не три картинки, а picturebox или usercontrol, тогда у вас события будут на одном элементе всегда.

а проводник делает именно так как я говорю.
при отведении мыши с зажатой клавишей он все равно возвращает состояние обратно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.09.2016, 23:49   #7
Maks3
Пользователь
 
Регистрация: 23.11.2014
Сообщений: 28
По умолчанию

У меня картинки и так в picturebox'ax. Можно пожалуйста пример, а то что то не догоняю
Maks3 вне форума Ответить с цитированием
Старый 26.09.2016, 23:50   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

один pictureBox, и просто перерисовывать картинку
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.09.2016, 00:17   #9
Maks3
Пользователь
 
Регистрация: 23.11.2014
Сообщений: 28
По умолчанию

А картинки в ресурсах?
Maks3 вне форума Ответить с цитированием
Старый 27.09.2016, 00:20   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

к примеру так.
часто еще делают соединенное изображение, глиф.
оно одно содержит все три состояния, а рисуется лишь одно(просто рисуется нужный кусок)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собственная сортировка таблицы ACMILAN22 Помощь студентам 3 23.09.2012 11:37
Собственная графическая оболочка Studik Паскаль, Turbo Pascal, PascalABC.NET 4 05.07.2011 14:43
Кнопка из картинок qwerty55 Мультимедиа в Delphi 8 17.03.2010 00:01
Собственная операционная система kraftwerk Помощь студентам 0 15.04.2009 15:36
Собственная компонента: будильник redred Компоненты Delphi 1 13.05.2008 06:48