У меня есть окно рисунка, которое будет заполнено на OpenFileDialog()
, после этого я должен отобразить гистограмму (диаграмму) из него. Я использую свойство get and set для переноса изображения из картинки в другой класс или форму. Но я всегда получаю NullReferenceException. Кажется, что растровое изображение не имеет изображения после того, как я открываю файл изображения, поэтому оно ничего не возвращает. Я пытаюсь заполнить параметр растрового изображения полным путем к изображению, и оно работает, но OpenFileDialog()
становится бессмысленным.
- Нажмите кнопку параметров
- Чтобы отобразить гистограмму
Вот мой код
MainForm.cs
// button for opening image
private void openImage_Click(object sender, EventArgs e)
{
OpenFileDialog img = new OpenFileDialog();
img.Title = "Open Image File...";
img.Filter = "Image File (*.bmp, *.jpg, *.jpeg, *.png |*.bmp;*.jpg; *.jpeg;*.png";
if (img.ShowDialog() == DialogResult.OK) {
pbInput.Image = new Bitmap(img.FileName);
// blablabla
}
}
// set and get property
public Image getImage {
get { return pbInput.Image; }
set { pbInput.Image = value; }
}
OptionsForm.cs
private void hist1_Click(object sender, EventArgs e)
{
h1 = new Histogram();
h1.FormClosed += (s, a) => hist1.Enabled = true;
hist1.Enabled = false;
h1.Show();
}
Histogram.cs
public partial class Histogram : Form
{
MainForm m = new MainForm();
public Histogram()
{
InitializeComponent();
Bitmap b = new Bitmap(m.getImage);
//bla bla bla. . . . . *creating histogram code
}
}
Сообщение об ошибке, которое я получаю
Надеюсь, этот вопрос достаточно ясен. Спасибо..! PS: Engli sh не является моим основным языком, поэтому прошу прощения за мою грамматику, et c.