Har lavet fået lavet denne løsning som virker
// form 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test_data
{
public partial class Form1 : Form
{
private List<string> navne;
public Form1()
{
InitializeComponent();
navne = new List<string>();
navne.Add("Silas");
navne.Add("Anders");
navne.Add("Hans");
PublishData();
}
public void PublishData()
{
listBox2.Items.Clear();
foreach (string navn in navne)
{
listBox2.Items.Add(navn);
}
}
private void button1_Click(object sender, EventArgs e)
{
Form2 start_form2 = new Form2(navne, this); // "this" er en reference til "current object" - dvs. en Form1 instans
start_form2.Show();
}
}
}
Form 2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test_data
{
public partial class Form2 : Form
{
private List<string> navne = new List<string>();
private Form1 form1;
/// <summary>
/// Lav en ny instans af Form2 klassen
/// </summary>
/// <param name="navne">Listen med navne</param>
/// <param name="form1">En instans af Form1. I vores tilfælde er det simpelt. Vi kalder Form2 fra Form1 og sender den
/// med over direkte.</param>
public Form2(List<string> navne, Form1 form1)
{
InitializeComponent();
this.navne = navne;
this.form1 = form1; // Vi gemmer en reference til den Form1 der kører i baggrunden, mens vi kigger på Form2.
// Derved kan vi bl.a. opdatere data i den (som vi gør nu). Der er også andre muligheder.
PublishData(); // Put listen med navne i listbox'en
}
private void button2_Click(object sender, EventArgs e)
{
navne.Add(textBox1.Text);
textBox1.Clear();
PublishData();
}
private void PublishData()
{
listBox2.Items.Clear();
foreach (string et_navn in navne)
{
listBox2.Items.Add(et_navn);
}
}
private void foerTilbageKnap_Click(object sender, EventArgs e)
{
form1.PublishData(); // Opdater dataen i den "gamle" form, via den reference vi sendte over i konstruktoren.
this.Close(); // Luk den form vi kigger på nu.
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
}
Indlæg senest redigeret d. 04.05.2008 14:54 af Bruger #13662