Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 14

Клик по PictureBox: получение координат клика на PictureBox.Image

24.03.2013, 15:20. Показов 7269. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно имею PictureBox, например размерами 500 на 500 и в нем есть картинка, например размерами 1000 на 1000, я ее масштабирую, что бы она целиком влазила в PictureBox.
с помощью события MouseClick я легко могу узнать координаты клика, но это будут координаты самого PictureBox (то есть они не совпадут с координатами изображения), есть ли какие-нибудь способы получить координаты самого изображения?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2013, 15:20
Ответы с готовыми решениями:

Получение координат пикселя в PictureBox
Здравствуйте! Есть PictureBox, в него загружается изображение и потом производятся клики мышью. Как мне получить координаты клика именно на...

Конфликт между PictureBox.Load и PictureBox.Image.Save
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click Дан код. ...

Получение координат мыши относительно PictureBox
private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e { int CursorX = Cursor->Position.X-387; ...

6
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
24.03.2013, 15:23
PointToScreen
0
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 14
24.03.2013, 15:35  [ТС]
У меня были мысли насчет этого метода, но насколько я понимаю, он возвращает точку относительно всего экрана, разве нет?
я пробовал так:
C#
1
2
3
4
        private void pb_MouseClick(object sender, MouseEventArgs e)
        {
            var a = (sender as PictureBox).PointToScreen(new Point(e.X,e.Y));
        }
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
24.03.2013, 15:46
Протупил, не до конца прочитал. Ты как ужимаешь картинку? Stretch или Zoom?
0
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 14
24.03.2013, 15:47  [ТС]
Zoom
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
24.03.2013, 16:44
Посчитать можно, но координаты будут очень приблизительными из-за округления до целого
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
    double koef;
    using (PictureBox pb = (PictureBox)sender)
    {
        if ((double)pb.Width / (double)pb.Height < (double)pb.Image.Width / (double)pb.Image.Height)
        {
            koef = pb.Width / pb.Image.Width;
        }
        else if ((double)pb.Width / (double)pb.Height > (double)pb.Image.Width / (double)pb.Image.Height)
        {
            koef = (double)pb.Height / (double)pb.Image.Height;
        }
        else
        {
            koef = (double)pb.Width / (double)pb.Height;
        }
    }
    int realX = (int)(e.X / koef);
    int realY = (int)(e.Y / koef);
    MessageBox.Show(string.Format("x={0}\ny={1}", realX.ToString(), realY.ToString()));
}
1
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 14
24.03.2013, 17:49  [ТС]
так действительно слишком приблизительно выходит, но все равно спасибо, но я попробую еще что-нибудь придумать, так как нужна большая точность
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2013, 17:49
Помогаю со студенческими работами здесь

Копирование Image из PictureBox в другой PictureBox c дорисовкой
здесь я нарисовал линию в img1, отобразил в PictureBox1, далее копирую изображение из PictureBox1.Image в img2 и в нем дорисовываю вторую...

Получить координаты клика по pictureBox
событие сгенерированое несет объект EventArgs e однако из него невозможно узнать координаты мыши. их узнать можно из объекта ...

Узнать координаты клика на Picturebox
Всем привет. Как узнать координаты клика на пикчюр боксе.

Координаты клика в pictureBox и построение окружности
Собственно есть код: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Как сделать проверку клика по picturebox?
Как задать такое условие: если будет произведён клик по picturebox то... Я это делаю вот как: Form2 f2 = new Form2(); if...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
ПЛИС
zxcha1ka_ 27.01.2026
AHDL Разработать программы для синтеза следующих устройств: 1. Параллельного регистра 4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением); Пoмoгитe пoжaлyйстa
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru