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:> Fehlermeldung:
Der Zugriff auf "test.Form1.listView1" ist aufgrund der Sicherheitsebebe nicht möglich.
Danke für eure Hilfe.
lg
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.
2 Möglichkeiten zur Abhilfe, anhand der von caldicot schon genannten Information:
Mir persönlich gefällt Lösung 2 besser 😉
so far
Karill
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
Da geht es aber um zwei Formen, ich hab eine Form und eine Kasse??
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 😉
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
Was willst du mir damit sagen? Ich bin c# Anfänger und hab hier nichts zu suchen??
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.
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
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.
Hallo signC,
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.
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!"