Передайте одну форму в качестве параметра конструктору второй формы или добавьте метод, который передал ссылку.После того, как вы получите ссылку на свою форму, вы можете делать с ней все, что захотите.
Вопрос о том, делиться ли ящиком с картинками в качестве общедоступного участника, остается за вами.Однако я бы предложил сделать публичный метод SetImage()
в первой форме.Вторая форма будет вызывать form1.SetImage()
.
[Обновить]
Подождите, почему вам нужно установить изображение из OpenFileDialog, вам просто нужно получить fileName из диалога,а затем откройте файл и загрузите в форму.
Примерно так:
private void button1_Click(object sender, EventArgs e)
{
using (var dialog = new OpenFileDialog())
{
var result = dialog.ShowDialog();
if (result != DialogResult.OK)
return;
pictureBox1.Image = Image.FromFile(dialog.FileName);
}
}
Это код внутри формы 1.
[Обновление]
Вот основная идея, как получить доступ к одной форме из другой.
public class MyForm1 : Form
{
public MyForm1()
{
InitializeComponent();
}
public void SetImage(Image image)
{
pictureBox1.Image = image;
}
private void button1_Click(object sender, EventArgs e)
{
var form2 = new Form2(this);
form2.Show();
}
}
public class MyForm2 : Form
{
private MyForm1 form1;
public MyForm2()
{
InitializeComponent();
}
public MyForm2(MyForm1 form1)
{
this.form1 = form1;
}
private void button1_Click(object sender, EventArgs e)
{
form1.SetImage(yourImage);
}
}