Hallo,
ich habe vor eine Windows Form zu vererben.
Auf der Basis Form sind die Steuerelemente drauf, die drauf sein müssen.
Alles schön und gut.
Jetzt erbe ich das ganze, rufe auch die Knostuktor aus der Basisklasse auf, und er zeigt mir nun die Steuerelemente an, wie in der Basisklasse auch. Jetzt will ich in ein TableLayout, welches in der Basisklasse ist ein neues Steuerelement drauf ziehen, leider ohne Erfolg, da es nicht funktioniert.
Was mache ich falsch?????????
Ich verwende Visual Studio 2005!
Gruß
MacWale
Hallo,
hast Du mal geschaut, ob auf dem Layout innerhalb des Designers ein kleines Schloss zu sehen ist? Setzt mal den Modifier Deines TableLayout innerhalb der Basisform von private auf protected.
Gruß, DaMoe
Ich weiß nicht was du vorhast, aber wäre es für dich eine Überlegung Wert, anstatt vererbte Forms, vererbte UserControls zu nehmen, auf denen du die Steuerlemente plazierst?
Diese kannst du überall und mehrfach verwenden.
> Codejunky <
Hallo,
ja da ist so ein kleines Schloss.
Der Modifier ist von Private auf Protected umgestellt, aber keine Änderung!
Gruß
MacWale
ja hab ich auch schon drüber nachgedacht, ein Usercontrol zu verwenden, aber Forms wären sinnvoller
Alternative versuche es mal mit public. Ich weiss momentan nicht, welche Sichbarkeit fuer den Designer notwendig ist. Protected sollte normalerweise genügen. Eventuell hilft auch ein Rebuild. Manchmal ist der Designer ein wenig zickig und benötigt etwas Zeit, um die Änderungen zu erkennen.
Allerdings wuerde ich JunkyXL's Rat beherzigen.
Gruß
mit public habe ich es auch schon versucht, ist negativ.
Ich muss es leider mit Forms machen 😦.
Hallo MacWale,
Ich verwende Visual Studio 2005!
Ich benutze User-Controls und vererbte Forms. Im VS 2005 und 2008 hatte ich oft Fehler im Designer "Path ....". Das kann von User-Controls kommen, muss aber nicht.
Mit Schließen, Projekt bereinigen und erneut öffnen war der Fehler zwar weg, aber das war obernervig.
Erst mit VS2008 SP1 ist der Fehler weg. Deswegen empfehle ich Dir VS2008 SP1.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Projekt bereinigen bringt nix, neu geöffnet etc habe ich auch schon, aber alles schon mehrfach. Kann es sein, dass der Designer dies nicht unterstützt. Naja wäre echt blöd 😦 In dem Sinne würden mir auch Controls nicht weiterhelfen
Ich benutze User-Controls und vererbte Forms. Im VS 2005 und 2008 hatte ich oft Fehler im Designer "Path ....". Das kann von User-Controls kommen, muss aber nicht. [...]
Da war doch was. Das hatte ich zuletzt oft in VS 2005 ohne SP1. Seitdem nicht mehr.
ja hab ich auch schon drüber nachgedacht, ein Usercontrol zu verwenden, aber Forms wären sinnvoller Das mag ich doch bezweifeln 😃 UserControls schränken dich überhaupt nicht ein, bzw. Forms geben dir keine sonderlichen Vorteile.
Tipp: Sobald du Änderungen an einem Base-Control machst, muss ein Re/build des Projektes erfolgen, da der Designer die kompilierte Version anzeigt.
Protected an sich reicht nämlich aus. Du musst aber auch beachten, dass nicht alle Controls zur Vererbung vorgesehen sind. Das könnte hier der Fall sein.
> Codejunky <
Ich vererbe ja nicht die Buttons, sondern die Form. Ich will ja nicht das TableLayout oder ein Button erben.
Ja du hast mir nen Tipp gegeben mit dem Service Pack 1, lade es gerade runter. Vermutlich wird es daran liegen.
Übrigens mit nem UserControl habe ich das selbe Problem.
Ansonsten müsste ich das Table Layout weglassen, was aber unschön wäre
Da du die Form vererbst, hast du von außen erstmal keinen Zugriff auf die enthaltenen Controls. Die sind nämlich standardmäßig private.
Ob UserControl oder Form, das hilft dir bei dem Problem nicht weiter.
Hast du möglicherweise um das TableLayoutPanel noch einen anderen Container, der noch private ist?
> Codejunky <
nein habe ich nicht. 😦
Ja das ist klar, wenn ich eine Form erbe, dass ich im normalfall kein zugriff auf die Steuerelemente habe. Jedoch habe ich alle Elemente auf der Basisform auf protected gesetzt. Installier gerade das ServicePack1 für Visual Studio 2005, mal schauen, ob es was bringt.
Hast du es mal mit einem Panel versucht? Das lässt sich auf jeden Fall vererben und verwenden.
> Codejunky <
ist nicht war, mit nem Panel funktioniert es, aber mit TableLayoutPanle nicht??? Woran liegt das??
Sei froh, dass die visuelle Vererbung so "gut" funktioniert. Ist keine Selbstverständlichkeit, und wie gesagt, nicht alle Controls unterstützen das. Da steckt schon etwas mehr dahinter.
> Codejunky <