PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe beim Coden: C#



refl3x
30.03.2011, 16:31
Hey Leute!
Ich wende mich hier jetzt mal an diejenigen, die sich (hoffentlich besser als ich) mit C# und dem zugehörigen Programm Microsoft Visual C# 2010 Express, welches ich verwende, auskennen.
Mein Problem ist Folgendes: Ich habe 2 Windows Forms, Form1 und Form2. Beim Starten des Programms wird Form1 ausgeführt, auf der sich nur etwas Text und ein Button befinden. Wird der Button gedrückt, soll sich Form2 öffnen und Form1 schließen.

So weit so gut. Anfangs hatte ich bemerkt, dass

this.Close();
nicht nur die aktive Form, sondern die ganze Anwendung schließt.
Der nächste Versuch war

this.Hide();
,welcher aber dazu geführt hat, dass nach beenden von Form2 Form1 noch im Hintergrund am Laufen war, eben versteckt. Das bewirkt aber dann leider, dass die Anwendung evtl. unsauber beendet wird und dann im Hintergrund weiterläuft...

Und jetzt kommt meine Frage an euch: Wie krieg ichs hin, dass die Form1 nicht nur versteckt wird, sondern tatsächlich geschlossen?

Ein weiterer Versuch war der hier:

Form1 frm1 = new Form1();
Form2 frm2 = new Form2();
frm2.ShowDialog();
frm1.Close();
hat aber auch nicht geklappt.
Und ja, ich habe stundenlang Google bemüht. Weiß jemand eine Lösung?

PandaBlack
31.03.2011, 09:01
Ich gehe davon aus das du WinForm benutzt und kein WPF oder?

var Form2= new Form2();
Form2.Show();
Close();

Sgrab
31.03.2011, 14:39
Allein an diesem Code siehst du das er Forms benutzt!

Form1 frm1 = new Form1();
Form2 frm2 = new Form2();


Das stimmt nicht wirklich:


var Form2 = new Form2()


Was soll "var" sein?
Schau dir mal die Seite an, da müsstest du fündig werden.
http://www.tutorials.de/net-tutorials/185977-c-datenaustausch-zwischen-zwei-forms.html

PandaBlack
31.03.2011, 14:42
Allein an diesem Code siehst du das er Forms benutzt!

Form1 frm1 = new Form1();
Form2 frm2 = new Form2();

Kann ja sein das er WPF benutzt aber es auf die weise probiert hat und es deswegen nicht klappt, schon mal daran gedacht? :wus:


Was soll "var" sein?
http://msdn.microsoft.com/de-de/library/bb383973.aspx

MSDN benutzen, dann wüsstest du das var stimmt ;)

Sgrab
31.03.2011, 14:49
Lol, ich bin Informatiker, hab Delphi, c++ und jetzt C# gelernt, mir war "var" in dem zusammenhang völlig unbekannt. :HA:
Man lernt halt nie aus.....
Aber so sollte es richtig sein.


Form2 frm2 = new Form2();

PandaBlack
31.03.2011, 14:56
Lol, ich bin Informatiker, hab Delphi, c++ und jetzt C# gelernt, mir war "var" in dem zusammenhang völlig unbekannt. :HA:
Man lernt halt nie aus.....
Aber so sollte es richtig sein.


Form2 frm2 = new Form2();

Kanntest das echt nicht? Den Methodentyp gibt es eigentlich in jeder Sprache, vor allem in c++ und Delphi :O
Naja man wird alt wie eine Kuh aber lernt noch was dazu :'D
Ob jetzt Form oder Var ist nicht wichtig, da kommt beides raus, nur finde ich var in den Zusammenhang und in der Nutzung besser. ;)
Ps. bin ebenfalls Fachinformatiker für Anwendungsentwicklung wie man meinem Profil gern entnehmen kann.
pps. ich hasse den edit button und den zitat button :I:faust:

Sgrab
31.03.2011, 15:00
Ich bin noch in der Ausbildung ^^/
In Delphi war es mir bekannt, aber in C++ und C# nicht.

refl3x
31.03.2011, 20:08
Ich hab jetzt nach längerem rumprobieren aufgegeben, das Problem auf dem Weg zu lösen.
Jetzt sieht der Code so aus:



this.Hide();
frm2.Show();

//In der Form2 der folgende Code:
private void Pfadauswahl_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}


Damit wird dann auch die versteckte Form, sowie das ganze Programm sauber beendet (hoffe ich).
Dennoch danke für eure Hilfe, und, ja ich habe eine Windows-Forms-Anwendung.

PandaBlack
31.03.2011, 20:57
hrhr grade bemerkt das das bei WPF super klappt aber WinForms Probleme macht. Augenblick.
Ja außer

Form2 main = new Form2();
main.Show();
this.Hide();

nichts zu bieten was du gebrauchen kannst. Öhm warum eigentlich Forms? Ist doch veraltet :l

refl3x
31.03.2011, 21:53
Was ist denn das Neuere? Meine Programme werden immer noch alle in Fenstern ausgeführt :P

PandaBlack
31.03.2011, 22:31
Was ist denn das Neuere? Meine Programme werden immer noch alle in Fenstern ausgeführt :P

WPF > WinForms, probiers aus ;)

refl3x
31.03.2011, 23:24
Okay, ich hab mir das mal angesehen, und bin zu dem Ergebnis gekommen, dass es für mich tatsächlich besser ist, bei meinen "normalen" Forms zu bleiben. Ein Grund dafür ist z.B. der größere Support für Drittanbietersoftware. Und natürlich bin ich jetzt schon viel zu weit, um noch umzusteigen :rolleyes:

EDIT: Gerade hab' ich gelesen, dass man WPF Controls auch in einer Forms-Anwendung hernehmen kann und umgekehrt. Naja wenns stimmt...