Komunikation zw. Forms

25/05/2009 - 11:55 von Albert Andersson | Report spam
Hallo Zusammen

Ich habe eine GrundForm in welcher sich mein Programm abspielt.
Die GrundForm (frmMain) instanziert die From frmMainMenu in welcher sich
das Menu befindet.

Zusatzlich sind in der frmMain die Methoden enthalten, über welche ich
andere Forms aufrufen kann.

Klick auf menu Punkt -> Entsprechende Form geht auf.

Um von frmMainMenu zugriff auf frmMain zu haben, habe ich in frmMain
folgendes implementiert:

public partial class frmMain : Form
{
private static frmMain my_Instance;

public frmMain()
{
InitializeComponent();
}

public static frmMain getInstance()
{
if(my_Instance == null)
my_Instance = new frmMain();
return my_Instance;
}
public void ShowPersonWindow()
{
frmPerson pers = new frmPerson();
pers.Show(dockPanel1);
pers.DockState = WeifenLuo.WinFormsUI.Docking.DockState.Document;
}
}

In frmMainMenu referenziere ich die Klasse, und habe so Zugriff auf die
Show...Window Methoden.

Das aufrufen dieser Methoden scheint auch zu klappen (Debugger stoppt in
methode) nur wird mir das Fenster nicht angezeigt.

Starte ich die Show methode aus dem frmMain heraus (direkt) wird das
Fenster angezeigt ... durchlaufen wird sie aber beidemale.

Wo kann das Problem liegen? Wie könnte ich diese Komunikation anders lösen?

Vom Form frmMainMenu aus soll ich Methoden im Form frmMain aufrufen können.
 

Lesen sie die antworten

#1 Albert Andersson
25/05/2009 - 12:01 | Warnen spam
Die Form (frmMain) verliert den Fokus nach dem ich den MenuPunkt
aktiviert habe (die methode ausgelöst habe) ... fals das wichtig ist.



Albert Andersson schrieb:
Hallo Zusammen

Ich habe eine GrundForm in welcher sich mein Programm abspielt.
Die GrundForm (frmMain) instanziert die From frmMainMenu in welcher sich
das Menu befindet.

Zusatzlich sind in der frmMain die Methoden enthalten, über welche ich
andere Forms aufrufen kann.

Klick auf menu Punkt -> Entsprechende Form geht auf.

Um von frmMainMenu zugriff auf frmMain zu haben, habe ich in frmMain
folgendes implementiert:

public partial class frmMain : Form
{
private static frmMain my_Instance;

public frmMain()
{
InitializeComponent();
}

public static frmMain getInstance()
{
if(my_Instance == null)
my_Instance = new frmMain();
return my_Instance;
}
public void ShowPersonWindow()
{
frmPerson pers = new frmPerson();
pers.Show(dockPanel1);
pers.DockState = WeifenLuo.WinFormsUI.Docking.DockState.Document;
}
}

In frmMainMenu referenziere ich die Klasse, und habe so Zugriff auf die
Show...Window Methoden.

Das aufrufen dieser Methoden scheint auch zu klappen (Debugger stoppt in
methode) nur wird mir das Fenster nicht angezeigt.

Starte ich die Show methode aus dem frmMain heraus (direkt) wird das
Fenster angezeigt ... durchlaufen wird sie aber beidemale.

Wo kann das Problem liegen? Wie könnte ich diese Komunikation anders lösen?

Vom Form frmMainMenu aus soll ich Methoden im Form frmMain aufrufen können.

Ähnliche fragen