Не изменяется размер изображения на главной форме
У меня такая проблема я на главной форме вызываю форму в которой ввожу новые ширину и высоту изображения и после того как я нажал ОК должен меняться размер изображения но ничего не происходит вот мой код
Код метода главной формы
private void размерИзображенияToolStripMenuItem_Click(object sender, EventArgs e)
{
// Получаем текущее изображение из PictureBox
Bitmap currentImage = (Bitmap)pictureBox1.Image;
// Открываем форму changing_the_image_size и передаем ей текущее изображение
using (changing_the_image_size form = new changing_the_image_size(currentImage))
{
if (form.ShowDialog() == DialogResult.OK)
{
// Очистка PictureBox
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
// Получаем измененное изображение
Bitmap resizedImage = form.existingImage;
// Устанавливаем новое изображение и размер PictureBox на главной форме
pictureBox1.Image = resizedImage;
pictureBox1.Size = new Size(resizedImage.Width, resizedImage.Height); // Изменяем размер PictureBox
pictureBox1.Invalidate(); // Перерисовываем PictureBox
}
}
}
Код формы для изменения
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ArtEdit;
namespace ArtEdit
{
public partial class changing_the_image_size : Form
{
public Bitmap existingImage { get; private set; }
public changing_the_image_size(Bitmap bitmap)
{
InitializeComponent();
this.existingImage = bitmap;
// Устанавливаем минимальные и максимальные значения для размеров изображения
numericUpDownWidth.Maximum = 10000;
numericUpDownHeight.Maximum = 10000;
numericUpDownWidth.Minimum = 1;
numericUpDownHeight.Minimum = 1;
// Устанавливаем текущие размеры изображения в numericUpDown
numericUpDownWidth.Value = existingImage.Width;
numericUpDownHeight.Value = existingImage.Height;
}
private void btnOk_Click(object sender, EventArgs e)
{
try
{
int width = (int)numericUpDownWidth.Value;
int height = (int)numericUpDownHeight.Value;
// Изменяем размер существующего изображения
Bitmap resizedImage = new Bitmap(existingImage, width, height);
//Заменяем существующее изображение на измененное
existingImage = resizedImage;
// Устанавливаем измененное изображение в свойство формы
this.existingImage = resizedImage;
this.DialogResult = DialogResult.OK;
this.Close();
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка при изменении размера изображения: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
}
Ответы (1 шт):
Автор решения: sosiska
→ Ссылка
Вы в конструкторе класса, присваиваете переменным numericUpDownWidth.Value
и numericUpDownHeight.Value
значения, уже установленного изображения. Также, не понятно зачем, вы два раза присваиваете переменной existingImage
одно и то же значение