Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
-2 / 24 / 8
Регистрация: 19.02.2012
Сообщений: 431
1

Клик по кнопке осуществлять не при попадании курсора в ее область, а в область картинки на ней

03.07.2014, 12:59. Показов 1511. Ответов 6
Метки нет (Все метки)

Делаю вместо кнопки картинку. Хочу чтобы когда курсор наводишь на кнопку , нажатие работало не когда попадаешь в квадратную область кнопки, а когда попадаешь в область картинки ( у меня картинка не квадратная). Кто с этим сталкивался, поделитесь как вы это решали.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2014, 12:59
Ответы с готовыми решениями:

Появляется горизонтальная линия при попадании курсора в нарисованную область
1)Вот я нарисовал на форме какой нибудь рисунок, почему если навести на этот рисунок курсор мыши то...

ActionScript переход к кадру N при попадании MovieClip в заданную область
Добрый день! Есть MovieClip. Задача: переход к кадру N при попадании этого объекта MovieClip в...

Закрасить форму случайными пикселями, меняя цвет при попадании в область фигуры
Закрасить форму случайными пикселями, меняя цвет при попадании в область фигуры. P.s: фигура в...

Закрасить форму случайными пикселями, меняя цвет при попадании в область фигуры
Закрасить форму случайными пикселями, меняя цвет при попадании в область фигуры. Желательно...

6
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
03.07.2014, 13:36 2
Лучший ответ Сообщение было отмечено imcavs™ как решение

Решение

Не квадратная? а какая? Вообще в событии клика мышки надо задавать условие, если координаты мышки находятся оттуда до туда, то выполняется что-то
0
990 / 888 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
03.07.2014, 13:43 3
Лучший ответ Сообщение было отмечено imcavs™ как решение

Решение

Я бы лучше посоветовал к WPF обращаться с такими задачами...
Если прозрачные части есть не только по краям (круглая кнопка, например), то с нажатиями будет ещё труднее.
С точки зрения того, как это вообще можно реализовать - создать регион по Вашему изображению и проверять, а попадает ли координата, куда нажали мышкой в данный регион или нет.
1
-2 / 24 / 8
Регистрация: 19.02.2012
Сообщений: 431
03.07.2014, 14:18  [ТС] 4
кнопка в виде трапеции наклонной, я думаю не суть важна. факт в том, что делая фон прозрачным, остаётся от кнопки квадратная область, что не нужно.
0
990 / 888 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
03.07.2014, 14:25 5
Если о сглаживании/закруглении речи нет, то через свойство Region задайте регион кнопки и всё будет как надо.
0
-2 / 24 / 8
Регистрация: 19.02.2012
Сообщений: 431
03.07.2014, 15:27  [ТС] 6
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    // This method will change the square button to a circular button by 
    // creating a new circle-shaped GraphicsPath object and setting it 
    // to the RoundButton objects region.
    private void roundButton_Paint(object sender, 
        System.Windows.Forms.PaintEventArgs e)
    {
 
        System.Drawing.Drawing2D.GraphicsPath buttonPath = 
            new System.Drawing.Drawing2D.GraphicsPath();
 
        // Set a new rectangle to the same size as the button's 
        // ClientRectangle property.
        System.Drawing.Rectangle newRectangle = roundButton.ClientRectangle;
 
        // Decrease the size of the rectangle.
        newRectangle.Inflate(-10, -10);
        
        // Draw the button's border.
        e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);
 
        // Increase the size of the rectangle to include the border.
        newRectangle.Inflate( 1,  1);
 
        // Create a circle within the new rectangle.
        buttonPath.AddEllipse(newRectangle);
                
        // Set the button's Region property to the newly created 
        // circle region.
        roundButton.Region = new System.Drawing.Region(buttonPath);
 
    }
взял на мсдн. не для круга, какие параметры изменять?
0
990 / 888 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
03.07.2014, 15:48 7
Цитата Сообщение от imcavs™ Посмотреть сообщение
взял на мсдн. не для круга, какие параметры изменять?
В примере делают AddEllipse, в Вашем случае будет, наверное, AddLines и соответственно массив из 4-х точек Вашей трапеции.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2014, 15:48
Помогаю со студенческими работами здесь

Записать условие, которое является истинным при попадании точки в заштрихованную область
Записать условие, которое является истинным, когда точка с координатами (х, у) попадает в...

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

Закрасить форму случайными пикселями, меняя цвет при попадании в область фигуры

Можно ли сократить код? При попадании мышкой в определенную область - в поле вводится цифра
Задали написать калькулятор с интерфейсом под SDL. Суть такая: при попадании мышкой в определенную...

Срабатывание Counter(a) при попадании в область видимости "экрана"
Здравствуйте ребятки. Есть к вам такая просьба! Я написал небольшой скрипт, который автоматически...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru