von Form1 aus ein Bild in Form2 anzeigen

08/10/2009 - 17:07 von Michael | Report spam
Hallo liebe Community,

entschuldigt diese Anfàngerfrage. Vieles ist für mich in C# neu.
Vorher habe ich VB6 ausgiebig genutzt.

Und zwar habe ich in Form1 eine Listbox mit etlichen URLs zu einer JPG
Datei. Ich möchte, dass beim SelectedIndexChanged Ereignis der Listbox
das Bild in einer PictureBox, die sich in Form2 befindet, angezeigt
wird.

Wenn sich die PictureBox in der Form1 befindet ist es für mich kein
Problem das Bild mit dem Befehl PictureBox1.ImageLocation ListBox1.SelectedItem.ToString() zu laden. Doch wie mache ich das für
die Form2?

Ich weiß, dass die Form wie folgt aufgerufen werden muss:

Form2 vorschau = new Form2();
vorschau.Show();

Doch so was wie vorschau.PictureBox1 gibt es nicht.

Auch möchte ich, dass die Form2 nicht nochmal geöffnet wird, wenn sie
schon offen ist.

Bestimmt ist die Lösung sehr simpel, wenn man mal den Trick raus
hat :)

Danke schon mal für die Hilfe.

Manuel
 

Lesen sie die antworten

#1 Christian Mählig
08/10/2009 - 18:00 | Warnen spam
Hallo Michael!

Wenn sich die PictureBox in der Form1 befindet ist es für mich kein
Problem das Bild mit dem Befehl PictureBox1.ImageLocation > ListBox1.SelectedItem.ToString() zu laden. Doch wie mache ich das für
die Form2?



Ganz einfach. Du klickst im Projektmappen-Explorer auf das "+" vor Form2 und
wechselst in Form2.Designer.cs. Dort müsste irgendwo private
System.Windows.Forms.PictureBox pictureBox1 zu finden sein. Ersetze private
durch public und dann kannst Du auf die pictureBox1 zugreifen.

Auch möchte ich, dass die Form2 nicht nochmal geöffnet wird, wenn sie
schon offen ist.



Du durchlàufst praktisch alle geöffneten Forms und prüfst ob Form2 dabei ist:

FormCollection oForms = Application.OpenForms;
bool bIsShown = false;
foreach (Form oForm in oForms)
{
if (oForm.Name.Equals("Form2") == true)
{
bIsShown = true;

}
}
if (bIsShown == false)
{
Form2 oForm2 = new Form2();
oForm2.Show();
}

Alles okay?

Gruß,
Christian

Ähnliche fragen