Zweites Form ausführen

d-Stench

Erfahrenes Mitglied
Hallo...

zu meinem Problem:

habe eine Windows-Anwendung erstellt, die auch funktionert so wie ich mir das vorgestellt hab :) . So weit so gut.

jetzt hab ich eine zweite erstellt, die auch funktioniert ;)

hab folgende Frage:

Die Zweite Anwendung will ich von der ersten aus starten und Parameter übergeben! UND ZWAR NUR SO Die muss nicht separat laufen können... (!)

wie realisiere ich das am besten?

wie starte ich das zweite Prog? Application.Run geht nicht!

Danke
 

d-Stench

Erfahrenes Mitglied
Die Form2 eine separate datei. sind zwei verschiedene Projecte.

kann man die Form2 in eine Dll umwandeln und dann irgendwie in das Main Project einbinden? Wenn "ja", wie?

was ich nicht will, dass beide Forms in einer .cs Datei sind. Die müssen getrennt gehalten werden.
 

broetchen

Erfahrenes Mitglied
Was willst du jetzt?

Ein zweites Form anzeigen lassen, oder ein anderes Programm aufrufen?

Ein zweites Form anzeigen zu lassen, ist kein Problem
Code:
Form2 f2 = new Form2();
f2.Show();

Ein anderes Programm zu starten, ist aber auch keine unlösbare Aufgabe ;-)
Code:
System.Diagnostics.Process p = System.Diagnostics.Process.Start(pfad,argumente);

mfg broetchen
 

Gaara-BTK

Grünschnabel
wenn du die Form2 in die Main einbinden willst, musst du die Form1 als MDI machen und Form2 zu MDIchild ....

ansonsten
Frage: soll die Form 1 ein Splash Fenster werden?
oder die Hauptform?

also bei MDI
Code:
void MDILoad(object sender, System.EventArgs e)
		{
			Splash fs = new Splash();
			fs.ShowDialog();
			
			Auftrag fa = new Auftrag();
			fa.MdiParent = this;
			fa.Show();
			fa.Dock = DockStyle.Fill;
		}
Da läd es zuerst ein Splash-fenster(kannst weglassen)danach wird in die Hauptform Form1 die Form2(Auftrag) gebunden.

wenn du ganz einfach "per klick" ne 2. Form öffnen willst machst folgendes.
Code:
void Button1Click(object sender, System.EventArgs e)
		{
			Form2 f = new Form2();
			f.ShowDialog(this);
		}
hier wird die Form2 geladen und angezeigt.
Bedingungen dafür sind, das die 2 Fenster den gleichen Namespace haben(oder einfach namespace weglassen)
und das die Klassen der 2. Form public sind,sodass man auf diese zugreifen kann.

Frag wenn du noch was wissen willst und schreib mal bissl genauer pls.

MfG Gaara[BTK]
 

d-Stench

Erfahrenes Mitglied
soweit klappt es auch, wenn ich den Quellcode von Frame2 in Frame1 kopiere
also:

frame2 f2 = new frame2();
f2.ShowDialog();




am liebsten währe es mir, wenn Form2 eine art DLL währ, die ich dann in Form1-Quellcode bekannt gebe und dann aufrufe und nicht die die beiden classen in ein namespace zusammenfasse.... nur wie?
 

Gaara-BTK

Grünschnabel
es gibt auch eine möglichkeit,das du in der Form1 bei z.b. Button1_click
eine Form schnell selber erstellt.
kommt drauf an was du machen willst
 

d-Stench

Erfahrenes Mitglied
Gaara-BTK hat gesagt.:
warum willst die unbedingt in einer dll machen und dann aufrufen?

Muss nicht sein! Ich dachte an eine DLL, weil man die nicht einfach ausführen kann. Wenn sich da eine andere möglichkeit bietet, nur zu..........

was ich überhaupt machen will ist folgendes:

Hab eine MainForm.

in diese MainForm will ich mehrere kleine 'Forms' einfügen, doch die Reihenfolge und anzahl dieser kleinen 'Forms' ist userabhängig.

wenn ich welche dieser Formen editieren, erweitern oder ersetzten will, will ich nicht in dem MainCode rumfumeln...

und es muss möglich sein diese Forms in andere Projecte einzubinden.

Ich möchte sowas, wie eine Bibliothek mit kleinen Forms, die nicht ausführbar sind, sondern nur in andere Forms einbinden lassen.


ich hoff, dass ich nichts vergessen hab.