NSR
Mitglied
Hi Leute,
ich habe folgendes Problem:
Ich habe ein MDI. In diesem habe ich nun eine NeuAnlegen-Form geöffnet. Wenn ich nun einer ComboBox der NeuAnlegen-Form ein neues Element hinzufügen möchte öffne ich eine weitere Form. Klicke ich in dieser auf Speichern, dann wird ein neuer Eintrag in eine Datenbank geschrieben.
Nun möchte ich, nachdem ich die Form fürs Hinzufügen geöffnet habe, dass sich der Code beim .Show wie .ShowDialog verhält und nicht im Programm weiter läuft. ShowDialog möchte ich allerdings nicht verwenden, denn ich gehe über 2 Methoden, um die hinzufügen-Form zu öffnen und möchte eigentlich einen Rückgabewert nicht über 2 Methoden weiterleiten.
Gut nach diesem Verwirrenden Schriften nun etwas Sourcecode.
ich habe folgendes Problem:
Ich habe ein MDI. In diesem habe ich nun eine NeuAnlegen-Form geöffnet. Wenn ich nun einer ComboBox der NeuAnlegen-Form ein neues Element hinzufügen möchte öffne ich eine weitere Form. Klicke ich in dieser auf Speichern, dann wird ein neuer Eintrag in eine Datenbank geschrieben.
Nun möchte ich, nachdem ich die Form fürs Hinzufügen geöffnet habe, dass sich der Code beim .Show wie .ShowDialog verhält und nicht im Programm weiter läuft. ShowDialog möchte ich allerdings nicht verwenden, denn ich gehe über 2 Methoden, um die hinzufügen-Form zu öffnen und möchte eigentlich einen Rückgabewert nicht über 2 Methoden weiterleiten.
Gut nach diesem Verwirrenden Schriften nun etwas Sourcecode.
Code:
private void btn_NeuerOrt_Click(object sender, EventArgs e)
{
this.m_NeuenOrtAnlegen(); //Hier wird die 1. Methode aufgerufen.
//Hier soll der Code warten, damit in der Datenbank neue Orte angelegt werden
//können, ohne dass der Code weiterläuft und dadurch die alten Einträge aus der
//Datenbank zur ComboBox hinzufügt.
DataTable orte = Datenbank.connection.execute("SELECT ort_id, standort from ort");
//Zuweisung der Werte aus der Datenbank zu der ComboBox.
cb_ort_id.DataSource = orte;
cb_ort_id.ValueMember = "ort_id";
cb_ort_id.DisplayMember = "standort";
}
Code:
private void m_NeuenOrtAnlegen()
{
mdi.m_LadeOberflaeche(Datenhaltung.Programm_Steuerung.Programmablauf.ortAnlegen); //Aufruf 2. Methode, Übergabeparameter ist ein Enum.
}
Code:
public void m_LadeOberflaeche(Datenhaltung.Programm_Steuerung.Programmablauf meinAblauf)
{
//Beim anlegen eines neuen Ortes soll Form Artikel anlegen nicht geschlossen werden.
if (meinAblauf != Datenhaltung.Programm_Steuerung.Programmablauf.ortAnlegen)
{
if (this.MdiChildren.Count() > 0)
{ this.MdiChildren[0].Close(); }
}
switch (meinAblauf)
{
case Datenhaltung.Programm_Steuerung.Programmablauf.ortAnlegen:
OrtAnlegen ort = new OrtAnlegen(this);
ort.MdiParent = this;
ort.Dock = DockStyle.Fill;
ort.Show();
break;
}
}