Autor Beitrag
sgssn
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 09.12.10 12:31 
Hallo
ich bin ein (ungeduldiger) Anfänger, also habt Geduld mit mir. Ich arbeite mich gerade durch ein C#-Buch, und finde aber eine Funktion nicht, die ich gerade brauche. Im Buch wird zwar behandelt, wie man dynamisch ein 2.Fenster erzeugt und anzeigt, aber nicht wie ich ein Fenste anzeige, das ich in der IDE erzeugt habe und nun beim Druck auf einen Button öffnen möchte.
Ich habe also ein 2. Fenster "Form2" erzeugt und möchte beim Druck auf einen Button dieses Fenster anzeigen. Das wäre wohl normalerweise der Befehl Form2.Show(). Aber die IDE meldet sofort:

Fehler 1 Für das nicht statische Feld, die Methode oder die Eigenschaft "System.Windows.Forms.Control.Show()" ist ein Objektverweis erforderlich. C:\Dokumente und Einstellungen\Boss\Eigene Dateien\Visual Studio 2010\Projects\ZweitesProjekt\ZweitesProjekt\Form1.cs 47 13 ZweitesProjekt

Ich gestehe, dass mir da noch eine fundamentale Einsicht fehlt, was die Programmierung anbelangt. Bisher habe ich sowas mit dem Borland C++ Builder programmiert, und da reicht es ein #include h-File einzufügen. Aber wie geht das mit Visual C# 2010 ?

Gruß
Gerhard
traceurmicha
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 160
Erhaltene Danke: 9

Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
BeitragVerfasst: Do 09.12.10 13:01 
Also erstmal Hallo und :welcome: in der Entwickler Ecke.

Man sagte mir mal, "Wer suchet der findet!", will heißen: Wenn du ein bisschen im Forum gesucht hättest, hättest du gesehen das vor nicht allzulanger Zeit ein anderer User genau das selbe Problem hatte.

Siehe Hier!

Desweiteren ist es immer besser (nur als kleiner Hinweis für die Zukunft) bei Fehlermeldungen die deinen Code angehen diesen auch hier zu Posten. Es ist schonmal sehr gut das du die Fehlermeldung hier reingeschrieben hast aber ohne den Code können wir dir leider wenig helfen.

Nun aber nochmal zu deiner Frage: Du musst in deinem Fall ein neues Objekt der Klasse Form2 erzeugen und dieses dann mit Show() anzeigen lassen.

Hoffe ich konnte dir ein wenig helfen

Gruß Micha

_________________
Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
sgssn Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 09.12.10 13:30 
Hallo Micha

"Du musst in deinem Fall ein neues Objekt der Klasse Form2 erzeugen und dieses dann mit Show() anzeigen lassen. "

das versteh ich nicht. Ich habe in der Projektmappe ein Form1.cs und ein Form2.cs. Damit ist das 2.Fenster definiert. Also muss ich doch nicht noch mal eins erzeugen. Ich will das Form2 anzeigen.

:-(( Nix kapiert

Gerhard
traceurmicha
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 160
Erhaltene Danke: 9

Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
BeitragVerfasst: Do 09.12.10 13:53 
Also nochmal,

Ich erkläre es mal so, hoffe das hilft dir.

Du hast eine Datei Form1.cs und eine Datei Form2.cs
D.h. du hast zwar den Code, aber deswegen hast du die Fenster nochnicht erstellt.
Warum nicht? Ganz einfach: Dein Rechner ist Dumm und weiß nicht das er aus dem Quelltext der in Form2.cs steht auch ein Fenster basteln soll und das auch noch anzeigen. Vergleichbar ist: Du hast 2 Zettel vor dir und beginnst automatisch Zettel 1 zu lesen. Darauf steht male ein Haus. Das machst du auch, aber weil da nicht steht lies Blatt 2 und tue was da drauf steht, machst du es auch nicht und lässt das Blatt 2 einfach liegen.
Genauso gehts deinem Rechner. Also sagst du ihm: "Hey, lies mal was in Form2.cs steht und merk dir das!" was im Code wäre
ausblenden C#-Quelltext
1:
Form neuesFenster = new Form2();					


Das gemerkte steht jetzt in neuesFenster und diese Variable ist vom Typ Form. Jetzt musst du ihm aber noch sagen was er mit dem Gemerkten machen soll. Vergleich: Wenn man dir sagt lies Blatt 2 und merk es dir dann liest du das dort steht male Fenster in dein Haus aber du wirst nichts machen weil dir nur gesagt wurde lies und merke, von mach was da steht hat keiner was gesagt.
Also sagst du deinem Computer jetz "Hey, wenn du dir das gemerkt hast, dann mach das auch was da drin steht und zeig mir das!" was im Code wäre:
ausblenden C#-Quelltext
1:
neuesFenster.Show();					


Hoffe das dir das jetz klar ist wie das Funktioniert, und der Vergleich war nur zur Veranschaulichung, nicht denken das ich dich für Blöde halte^^

Gruß Micha

_________________
Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
sgssn Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 09.12.10 14:10 
Grazie Micha

wie schon gesagt, bei Borland C++ Builder ist das nicht nötig. Da sind überhaupt keine C++-Kenntnisse erforderlich. Und das fehlt mir jetzt. Also dein Code funktioniert. :-)

Gruß
Gerhard
Oppi35
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 3



BeitragVerfasst: Do 09.12.10 14:16 
Hallo sgssn,

ich empfehle Dir mal die folgende Internetseite:

www.microsoft.com/ge...ry.aspx?id=118770374

Dort erhälst Du einen 10 Teiligen Online-Kurs (Video) für Anfänger und Fortgeschrittene. Habe selber damit gearbeitet. Falls der Link nicht direkt funktioniert, suche nach dem Kurs "Get Sharper Now".

Gruß
Frank
sgssn Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 09.12.10 15:40 
Hallo Frank

danke für den Link. Schau ich mir an, der kurs ist schon mal auf meinem rechner.

Gruß
Gerhard