Übergeben Sie ein Formular als Parameter an einen Konstruktor des zweiten Formulars oder fügen Sie eine Methode hinzu, die die Referenz übergibt. Nachdem Sie den Verweis auf Ihr Formular haben, können Sie mit dem Formular von tun, was Sie wollen.
Ob Sie den Bilderrahmen als öffentliches Mitglied freigeben, bleibt Ihnen überlassen. Ich würde jedoch vorschlagen, eine öffentliche Methode zu erstellen SetImage()
in der ersten Form. Die zweite Form würde aufrufen form1.SetImage()
.
[Update]
Warten Sie, warum Sie brauchen, um Bild von OpenFileDialog zu setzen, müssen Sie nur empfangen fileName aus dem Dialog, und dann öffnen Sie die Datei und laden in das Formular.
Zum Beispiel so:
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);
}
}
Dies ist der Code innerhalb von Form1.
[Update]
Hier ist die Grundidee, wie man von einem Formular auf ein anderes zugreifen kann.
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);
}
}