Laden...

Beim Form vererben macht der Designer Schwierigkeiten

Erstellt von MacWale vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.510 Views
M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren
Beim Form vererben macht der Designer Schwierigkeiten

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

D
500 Beiträge seit 2007
vor 15 Jahren

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

1.665 Beiträge seit 2006
vor 15 Jahren

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.

M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren

Hallo,

ja da ist so ein kleines Schloss.
Der Modifier ist von Private auf Protected umgestellt, aber keine Änderung!

Gruß
MacWale

M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren

ja hab ich auch schon drüber nachgedacht, ein Usercontrol zu verwenden, aber Forms wären sinnvoller

D
500 Beiträge seit 2007
vor 15 Jahren

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ß

M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren

mit public habe ich es auch schon versucht, ist negativ.

Ich muss es leider mit Forms machen 😦.

3.825 Beiträge seit 2006
vor 15 Jahren

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

M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren

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

1.665 Beiträge seit 2006
vor 15 Jahren

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.

M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren

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

1.665 Beiträge seit 2006
vor 15 Jahren

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?

M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren

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.

1.665 Beiträge seit 2006
vor 15 Jahren

Hast du es mal mit einem Panel versucht? Das lässt sich auf jeden Fall vererben und verwenden.

M
MacWale Themenstarter:in
37 Beiträge seit 2008
vor 15 Jahren

ist nicht war, mit nem Panel funktioniert es, aber mit TableLayoutPanle nicht??? Woran liegt das??

1.665 Beiträge seit 2006
vor 15 Jahren

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.