Member 12277263 Ответов: 1

Как удалить жестко закодированный путь для изображения


Здесь я пытаюсь скопировать и сохранить изображение из picture box.
У меня есть коробка с пятью картинками.

но я жестко закодировал "image im = PictureBox1. Image;"
и имя изображения,

таким образом, я могу скопировать и сохранить изображение из picturebox1.
Как скопировать изображение из другого графического окна.
private void MouseClick()
            {     
                PictureBox1.MouseClick += form_MouseClick;
              
                PictureBox2.MouseClick += form_MouseClick;
    
                PictureBox3.MouseClick += form_MouseClick;
    
                PictureBox4.MouseClick += form_MouseClick;

                PictureBox5.MouseClick += form_MouseClick;
            }
    		
    	private void frmRightClick_Disposed(object sender, EventArgs e)
            {
                folderBrowser.ShowDialog();
                string filepath = folderBrowser.SelectedPath;
                Image im = PictureBox1.Image;
                var obj = new Random();
                SaveImage(im, filepath + "\\" + obj.Next() + ".png");
            }
    		
    		private void SaveImage(Image im, string destPath)
            {
                im.Save(destPath, System.Drawing.Imaging.ImageFormat.Png);
            }


Что я уже пробовал:

Я попробовал использовать отправителя
private void frmRightClick_Disposed(object sender, EventArgs e)
            {
                folderBrowser.ShowDialog();
                string filepath = folderBrowser.SelectedPath;
                Image im = PictureBox1.Image;
                var obj = new Random();
                SaveImage(im, filepath + "\\" + obj.Next() + ".png");
            }

CHill60

Если вы можете скопировать изображение из pictureBox1, почему вы не можете сделать это из одного из других PictureBox?

1 Ответов

Рейтинг:
0

OriginalGriff

То sender параметр обработчика событий существует именно по этой причине:

private void form_MouseClick(object sender, EventArgs e)
    {
    PictureBox pb = sender as PictureBox;
    if (pb != null)
        {
        folderBrowser.ShowDialog();
        string filepath = folderBrowser.SelectedPath;
        Image im = pb.Image;
        var obj = new Random();
        SaveImage(im, filepath + "\\" + obj.Next() + ".png");
        }
    }


Member 12277263

Спасибо, я пробовал таким образом, я получаю PB null все время

OriginalGriff

Тогда вы не нажимаете на PictureBox!
Используйте отладчик, чтобы узнать, какой тип отправителя... это должно помочь вам понять, что происходит.

Member 12277263

спасибо
Его работа

Member 12277263

Здесь я сохраняю имя изображения со случайным числом, есть ли какие-либо альтернативы

OriginalGriff

Нагрузок! Что ты пытаешься сделать?