Autor Beitrag
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Di 09.03.10 19:04 
Hallo liebes C#-Forum!
Ich bin in C# noch lange nicht wieder so gut, wie in Delphi, wo ich denke dass ich mich da wieder einigermaßen eingearbeitet habe.
Ich möchte gerne entweder die Fenster alle einzeln oder in einer Serie erscheinen lassen, was ich im Auswahl-Fenster festlegen möchte.
Bei diesem Code gibt er mir folgend Fehlermeldung auf die if-Abfrage:
Für das nicht statische Feld, die Methode oder die Eigenschaft "VisuelleWahrnehmung_VersuchNr2.Form_Auswahl.FensterSerie" ist ein Objektverweis erforderlich.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
        private void buttonWeiter_Click(object sender, EventArgs e)
        {
            if (Form_Auswahl.FensterSerie)
                (new FormWTS_LVT()).Visible = true;    
            else
                Hide();
        }

Die Variable FensterSerie ist boolean

Später angefügt:
Also noch mal zur genaueren Erklärung: Ich habe ein Auswahl-Formular, auf dem ich eben durch eine Combo-/DropdownBox die einzelnen Fenster einzeln auswählen kann oder eben sagen kann, dass er alle nacheinander in einer Serie durchlaufen soll.
- Und je nachdem soll er dann halt das nächste aufmachen oder einfach nur auf die Form_Auswahl zurückkehren.


Zuletzt bearbeitet von ffgorcky am Di 09.03.10 19:49, insgesamt 2-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 09.03.10 19:47 
Form_Auswahl dürfte ja eine Klasse sein, davon musst Du erst einmal eine Instanz erzeugen, mit der Du arbeiten kannst.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
ffgorcky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Di 09.03.10 19:51 
Naja - wie man doch denke ich erraten kann - ist die Form_Auswahl das Anfangsfenster.
Also ist doch dort eine Instanz von vorhanden auf die ich eben zurückgreifen möchte.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 09.03.10 19:56 
user profile iconffgorcky hat folgendes geschrieben Zum zitierten Posting springen:
Naja - wie man doch denke ich erraten kann - ist die Form_Auswahl das Anfangsfenster.

Erstens: Wenn Leute, die Dir helfen wollen, irgendwas raten müssen, stimmt wohl etwas mit Deiner Problembeschreibung nicht.
Zweitens: Aus der Fehlermeldung und der darin enthaltenen Angabe der Eigenschaft "VisuelleWahrnehmung_VersuchNr2.Form_Auswahl.FensterSerie" rate ich nicht nur, sondern bin mir verdammt sicher, dass Form_Auswahl der Name einer Klasse ist und nicht der Name einer Instanz.

user profile iconffgorcky hat folgendes geschrieben Zum zitierten Posting springen:
Also ist doch dort eine Instanz von vorhanden auf die ich eben zurückgreifen möchte.
Auf Instanzen greift man aber nunmal nicht über den Klassennamen zu. Wie sollte das auch gehen, es kann je beliebig viele Instanzen derselben Klasse geben. Ich rate jetzt aber nicht, in welchen Variable oder in welchem Feld Du die Instanz abgelegt hast ...

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
ffgorcky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Di 09.03.10 20:01 
Ich habe da ja leider noch nicht so viel Ahnung von, wie das genau (in C#) geht, aber ich denke mal, dass sich da evtl. irgendwas mit parent oder so machen lassen müsste - also die aufrufende Fenster-Klasse. - Auf genau die möchte ich ja zurückgreifen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 09.03.10 20:04 
Ah, jetzt kapier ich, was Du meinst :idea:

Auf die aktuelle Instanz, in der Du Dich befindest, kannst Du mittels this (also z.B. this.FensterSerie) zugreifen. Wobei Du das meistens sogar weglassen kannst und z.B. nur FensterSerie schreiben.

//edit: Oder ist Dein Code jetzt doch nicht in der Auswahl-Form? :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 09.03.10 20:05 
Wenn du .NET Richtlinien für Namen beachtest - z.B. hinsichtlich Groß- und Kleinschreibung von Klassen und Variablen -, gibt es etwas weniger Missverständisse. Jürgen
ffgorcky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Di 09.03.10 20:16 
user profile iconChristian S. hat folgendes geschrieben:
//edit: Oder ist Dein Code jetzt doch nicht in der Auswahl-Form? :gruebel:


Nein, der ist genau in einem von dieser aufgerufenen Formular und es soll eben festgestellt werden, ob denn jetzt einfach das nächste Fenster aus dieser festen Fenster-Folge aufgerufen werden soll, oder wieder zum aufrufenden Haupt-Form zurückgekehrt werden soll.

user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du .NET Richtlinien für Namen beachtest - z.B. hinsichtlich Groß- und Kleinschreibung von Klassen und Variablen -, gibt es etwas weniger Missverständisse. Jürgen


Entschuldigung, ich weiß jetzt leider gerade nicht, welche Richtlinien ich da misachtet habe.
Ich bin ja auch irgendwie Delphi mehr gewöhnt.
ffgorcky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Di 09.03.10 20:25 
Oder meinst Du, ich sollte eher das momentan aufgerufene Form schließen und dann aber kurz vorher noch eine Prozedur in der aufrufenden Haupt-Form starten?

Dann müsste ich ja nur der aufrufenden Haupt-Form mit übergeben, von welcher die Prozedur denn nun gerade aufgerufen wurde.

Edit: Aber ich muss ja so oder so auf eine bestimmte Instanz der Hauptform zugreifen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 09.03.10 20:27 
Ich würde der aufgerufenen Form beim Aufruf bereits mitteilen, ob sie hinterher eine neue Form aufrufen soll oder ob sie zur Auswahl-Form zurückkehren soll.

Du kannst dafür einen Konstruktor erstellen, der diese Information als Parameter erhält. Dann brauchst Du keinen Zugriff mehr auf die Auswahl-Form.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
ffgorcky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Di 09.03.10 20:31 
Ja, das wäre natürlich auch eine Möglichkeit, in jedem aufgerufenen Fenster eine einzelne Variable zu machen, in der dann steht, ob zum Auswahl-Formular zurückgekehrt werden soll oder nicht.
Und wie kann ich das bei dem Aufruf mit übergeben?
Muss ich dann dafür eine Public-Variable in jedem aufgerufenen Form anlegen?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 09.03.10 20:33 
user profile iconffgorcky hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du .NET Richtlinien für Namen beachtest - z.B. hinsichtlich Groß- und Kleinschreibung von Klassen und Variablen -, gibt es etwas weniger Missverständisse. Jürgen

Entschuldigung, ich weiß jetzt leider gerade nicht, welche Richtlinien ich da misachtet habe.
Ich bin ja auch irgendwie Delphi mehr gewöhnt.

Ich weiß es auch nicht, aber die bisherige Diskussion ging auch in der Hinsicht etwas Hin und Her. Form_Auswahl wird eindeutig als Klassenname verstanden, wie auch Christian angenommen hat.

Du musst (im Gegensatz zu Delphi) Groß- und Kleinschreibung beachten. Grundgedanke: Klassen werden groß geschrieben, Variable klein.

Gruß Jürgen
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 09.03.10 20:38 
user profile iconffgorcky hat folgendes geschrieben Zum zitierten Posting springen:
Und wie kann ich das bei dem Aufruf mit übergeben?
Muss ich dann dafür eine Public-Variable in jedem aufgerufenen Form anlegen?
Nein, wie gesagt: Du fügst einen Konstruktor ein, dem das als Parmater übergeben wird. Innerhalb der Form solltest Du das in einem privaten Feld ablegen, welches in besagtem Konstruktor gefüllt wird.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".