Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Referenz von Form1 an Klasse übergeben.
signC
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

Referenz von Form1 an Klasse übergeben.

beantworten | zitieren | melden

Hallo,

bin neu in c# und hab Schwierigkeiten eine Referenz von Form1 an eine Klasse zu übergeben. Ich hab schon einiges auspropiert, bin aber nicht zum Ziel gekommen.


namespace test {

    public class ListViewC : Form {

        public void setListview(Form1 frm1) {

            frm1.listView1.Clear(); // fehler
            frm1.listView1.View = View.Details; // fehler
 
        }
    }
}

Leider bekomm ich eine Fehlermeldung:
Fehler
Der Zugriff auf "test.Form1.listView1" ist aufgrund der Sicherheitsebebe nicht möglich.
Danke für eure Hilfe.
lg
private Nachricht | Beiträge des Benutzers
caldicot
myCSharp.de - Member



Dabei seit:
Beiträge: 51

beantworten | zitieren | melden

Das liegt daran, dass Dein ListView in der Form1 den Zugriffsmodifizierer "Private" hat.
Daher kannst du nur innerhalb der Klasse Form1 auf das ListView Objekt zugreifen.
private Nachricht | Beiträge des Benutzers
signC
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

Habs in Form1.Designer.cs umgestellt.
Danke.
private Nachricht | Beiträge des Benutzers
Somakia
myCSharp.de - Member



Dabei seit:
Beiträge: 269
Herkunft: Hessen

beantworten | zitieren | melden

2 Möglichkeiten zur Abhilfe, anhand der von caldicot schon genannten Information:

1. Den Zugriffsmodifizierer auf Public schalten. Dies geht über die "Modifiers"-Einstellung (Entwurfsansicht)
2. In deiner Form eine Public Method erstellen, die da zum Beispiel "ClearListView1()" heißen könnte.

Mir persönlich gefällt Lösung 2 besser ;)

so far
Karill
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Somakia am .
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 416
Herkunft: Bawü

beantworten | zitieren | melden

Zitat von Karill Endusa
Mir persönlich gefällt Lösung 2 besser ;)

Es ist aber keine von beiden "Lösungswegen" zu empfehlen. Wie es richtig geht siehe [FAQ] Kommunikation von 2 Forms
private Nachricht | Beiträge des Benutzers
signC
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

Da geht es aber um zwei Formen, ich hab eine Form und eine Kasse??
private Nachricht | Beiträge des Benutzers
Somakia
myCSharp.de - Member



Dabei seit:
Beiträge: 269
Herkunft: Hessen

beantworten | zitieren | melden

Dann leite deine Klasse doch bitte nicht von Form ab, denn dadurch ist der Eindruck entstanden, es handele sich bei deiner Klasse um eine Form ;)
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 416
Herkunft: Bawü

beantworten | zitieren | melden

Davon abgesehn ist eine Form nichts anderes als eine Klasse.
Der ganze Thread fällt aber eigentlich schon von Anfang an unter [Hinweis] Wie poste ich richtig? 1.1.1
private Nachricht | Beiträge des Benutzers
signC
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

Was willst du mir damit sagen? Ich bin c# Anfänger und hab hier nichts zu suchen??
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von signC am .
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 416
Herkunft: Bawü

beantworten | zitieren | melden

Zitat von signC
Was willst du mir damit sagen? Ich bin c# Anfänger und hab hier nichts zu suchen??

Bitte den Thread lesen, darin wird auch diese Frage geklärt.
private Nachricht | Beiträge des Benutzers
signC
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

Welchen Thread??
private Nachricht | Beiträge des Benutzers
bl4ckY
myCSharp.de - Member



Dabei seit:
Beiträge: 193

beantworten | zitieren | melden

Nein, dass heißt das du mit etwas Initiative ohne große Probleme selbst darauf gekommen wärst, siehe 1.1 Erst suchen und in die Doku schauen, dann posten b.z.w 1.1.1 Nicht nach Grundlagen fragen
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von bl4ckY am .
private Nachricht | Beiträge des Benutzers
signC
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

Das tat ich, hab aber leider nichts gefunden was gepasst hat. Deshalb mein Post. Und so wie es aussieht hab ich nun drei Lösungen bekommen, von denen behauptet wird das jeweils die eine die Richtige/Bessere ist. So klar scheit die Antwort also nicht zu sein.
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.779
Herkunft: Waidring

beantworten | zitieren | melden

Hallo signC,
Zitat
So klar scheit die Antwort also nicht zu sein.
Doch die Antwort ist klar - und im verlinkten FAQ-Thema (Themen werden in Foren auch Threads genannt) beantwortet.

Ein Setzten auf public ist aus Gründen der Kapselung (ein OOP-Prinzip) nicht zu empfehlen, da eben die Kapselung dadurch verletzt wird. Wie es aber korrekt geht entnimm bitte der FAQ. Bedenke dabei, dass ein Form auch nur eine Klasse ist.

Wie jedoch bereits mehrfach erwähnt wurde sind das Grundlagen und schon öfters gefragt worden (daher auch eine FAQ - frequently asked question). Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1, 1.1.1.
Zitat
Was willst du mir damit sagen? Ich bin c# Anfänger und hab hier nichts zu suchen??
Diese Frage wurde in diesem Thread auch schon geklärt, aber schau dir hier auch Nehmt ihr auch Neulinge in der gehobenen Programmier-Welt auf? an.



mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers