Hi,
ich bekomme es nicht hin eine Klasse zu schreiben, die eine Methode beinhaltet die eine Form "instanziiert" und dann anzeigen kann.
Folgender TestCode funktioniert und besteht aus Form1.cs und Form2.cs. Beim Klick auf den Button in Form1 soll Form2 entweder erzeugt, angezeigt oder wiederhergestellt werden.
Das geht auch alles, nur müsste ich das ja immer wieder neu schreiben wenn ich eine Form3,Form4, ... erzeugen möchte. Kann ich nicht eine Klasse inkl. Methode schreiben, die als Argument die zu erzeugende "Form3" annimmt? Im Grunde soll alles das was in der Methode
Pseudo Code:
Tltr : Ich suche nach einer Möglichkeit Forms zu erzeugen/anzuzeigen mithilfe einer Methode die als Argument die Klasse oder das Objekt einer Form aus dem Solution Explorer anerkennt !?
ich bekomme es nicht hin eine Klasse zu schreiben, die eine Methode beinhaltet die eine Form "instanziiert" und dann anzeigen kann.
Folgender TestCode funktioniert und besteht aus Form1.cs und Form2.cs. Beim Klick auf den Button in Form1 soll Form2 entweder erzeugt, angezeigt oder wiederhergestellt werden.
C#-Quellcode
- using...
- namespace SecondForm
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- //Instanziieren vomn f2
- Form2 f2 = new Form2();
- //Bei Kick auf den Button soll sich die 2te Form öffnen
- private void BtOpenSecFrm_Click(object sender, EventArgs e)
- {
- if (f2 == null || f2.IsDisposed) f2 = new Form2();
- if (!f2.Visible) f2.Show();
- if (f2.WindowState == FormWindowState.Minimized) f2.WindowState = FormWindowState.Normal;
- f2.Show();
- f2.Focus();
- }
- }
- }
Das geht auch alles, nur müsste ich das ja immer wieder neu schreiben wenn ich eine Form3,Form4, ... erzeugen möchte. Kann ich nicht eine Klasse inkl. Methode schreiben, die als Argument die zu erzeugende "Form3" annimmt? Im Grunde soll alles das was in der Methode
BtOpenSecFrm_Click
steht in eine Methode die ein Argumente annimmt.Pseudo Code:
C#-Quellcode
- public Form f3 = new Form3();
- OpenNewForm(f3);
- public void OpenNewForm(Form frmNext)
- {
- if (frmNext == null || frmNext.IsDisposed)
- frmNext = new Form(); // <------ Das geht aber nicht da Form ja nicht richtig ist es müsste immer die Klasse da stehen die der Form zu Grunde liegt z.B. Form3
- if (!frmNext.Visible)
- frmNext.Show(frmNext);
- if (frmNext.WindowState == FormWindowState.Minimized)
- frmNext.WindowState = FormWindowState.Normal;
- frmNext.Focus();
- }
Tltr : Ich suche nach einer Möglichkeit Forms zu erzeugen/anzuzeigen mithilfe einer Methode die als Argument die Klasse oder das Objekt einer Form aus dem Solution Explorer anerkennt !?
codewars.com Rank: 4 kyu