Entwickler-Ecke
WinForms - Kein Zugriff auf public Methode eines zweiten Forms
_axel_ - Mo 05.05.14 17:04
Titel: Kein Zugriff auf public Methode eines zweiten Forms
Hallo EE-Gemeinde,
unter C# VS2010 stehe ich vor folgendem Problem:
aus meiner Form1 heraus möchte ich eine weitere Form2 öffnen. Die habe ich dem Projekt hinzu gefügt. Das sieht dann so aus und funktioniert.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| namespace GPU { public partial class Form2 : Form { Point pos;
public void SetPos(Point p) { pos = p; } ... } |
Zusätzliche habe ich die eingene Methode "public void SetPos(Point p)" vorgesehen.
Diese wird auch in der Klassenansicht dargestellt.
In Form1 habe ich eine Instanz der Form2 erzeugt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| namespace GPU { public partial class Form1 : Form { Form Graph = new Form2();
... } |
Wenn ich jetzt auf die öffentliche Methode SetPos() zurgreifen möchte, ist sie nicht sichtbar.
Graph.SetPos(..)
Warum nicht? Alle Methoden vom geerbten Form werden angeboten nur meine public Methode nicht.
Danke,
Axel
Ralf Jansen - Mo 05.05.14 17:19
Weil Graph selbst vom Typ Form ist (so von dir definiert) auch wenn da eine Instanz vom Typ Form2 dranhängt.
Wen du auf Form2 Sachen zugreifen willst benutze ein Variable vom Typ Form2 bzw. caste die Variable auf Form2 bevor du auf Dinge die nur Form2 kennen kann zugreifen willst.
Th69 - Di 06.05.14 10:27
Daher der gute Rat: gleich von Anfang an die Klassen (und auch darin enthaltenenen Controls) gleich richtig benennen, z.B. MainForm, PositionForm, etc.
_axel_ - Di 06.05.14 11:11
@Ralf: wie gut, dass du keine Tomaten auf den Augen hattest, wie ich. Nachdem ich den Typ für Graph von "Form" auf "Form2" geändert hatte war auch meine Methode "SetPos()" sichtbar. Logisch :)
@Th69: Dein Hinweis ist berechtigt. Wahrscheinlich wäre es mir mit guter Benennung eher aufgefallen.
Danke euch Beiden!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!