Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » C# контекстное меню для нескольких элементов

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Alexvip81

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
Модераторы - прошу прощения если оформляю тему как то не так  ( делаю это в первый раз)  
 
Исходные данные:
Для рабочих целей пишу программу на C# в VisualStudio.
На главной форме программы имеются 4 PictureBox. (фото)  
 
Задача:
Сделать контекстное меню для этих PictureBox, с пунктом "Сохранить как..."
При этом должна сохраняться Image того PictureBox - с которого было активировано контекстное меню.
 
Проблема:
Написал код, в котором для каждого PictureBox - есть свое ContextMenu... всего их 4.
Все работает. Но хочется сделать изящнее.
Функционал у всех ContextMenu один и тот же. Поэтому пробую сделать одно контекстное меню для всех PictureBox.  
 
сохраняю картинку так:
 
Bitmap bmpSave = (Bitmap)PictureBox1.Image;
            SaveFileDialog.Filter = ".jpg|*.jpg";
            SaveFileDialog.FileName = "Foto";
            if (saveFotoDialog.ShowDialog() == DialogResult.OK)
                {
                    bmpSave.Save(SaveFileDialog.FileName, ImageFormat.Jpeg);
                 }
 
Вопрос:
Как в первой строке приведенного кода, вместо PictureBox1.Image - можно указать Image того PictureBox , по которому произведен клик мыши???
 
В программировании я новичок.  Учусь самостоятельно.  
В примерах использования ContextMenu нигде не нашел как применять одно меню для нескольких элементов.  
Наткнулся на один форум в котором было сказано, что можно получить имя объекта, с которого было вызвано это меню:
contextMenu.SourceControl.Name
Но так я только получаю имя (string) нужного  PictureBox и дальше не знаю как получить доступ к его свойствам...

Всего записей: 3 | Зарегистр. 19-02-2015 | Отправлено: 11:23 02-09-2017
Alexvip81

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем как оно и бывает- только обратился за помощью,как решение само нашлось.
Для начала создаем новый объект  PictupeBox pBox и присваиваем ему хранимый в ContextMenu объект из которого было вызвано это меню с помощью  SourceControl
 
PictureBox pBox = contextMenuFoto.SourceControl as PictureBox;
 
Ну а дальше все как в коде из моего первого поста...
 
Bitmap bmpSave = (Bitmap)pBox.Image;  
            SaveFileDialog.Filter = ".jpg|*.jpg";  
            SaveFileDialog.FileName = "Foto";  
            if (saveFotoDialog.ShowDialog() == DialogResult.OK)  
                {  
                    bmpSave.Save(SaveFileDialog.FileName, ImageFormat.Jpeg);  
                 }

 
Вопрос решен!

Всего записей: 3 | Зарегистр. 19-02-2015 | Отправлено: 19:03 02-09-2017 | Исправлено: Alexvip81, 19:05 02-09-2017
Quelix

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуй, сам помочь не смогу, но мой близкий друг в подобных ситуациях всегда обращается к частным программистам, наиболее плотно он сотрудничает с Андреем 1C:PRO, вот ссылка на ресурс - :AD:. Думаю, вам там помогут

Всего записей: 2 | Зарегистр. 30-09-2017 | Отправлено: 13:52 30-09-2017 | Исправлено: ShIvADeSt, 02:48 02-10-2017
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » C# контекстное меню для нескольких элементов


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru