Autor Beitrag
Xzeer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 62



BeitragVerfasst: Mi 27.04.11 14:44 
Hallo,

Mir stellt sich gerade die folgende Frage:

Wenn ich ein Forms-Klasse erstelle, kann ich ja den Formulardesigner zum Entwerfen meiner Programmoberfläche verwenden. Angenommen ich erstelle mir eine neue Klasse und leite diese von der Klasse TabPage ab, kann ich dann auch irgendwie den Formulardesigner zum Entwerfen der Oberfläche nutzen?

Alle benötigten Steuerelemente von Hand zu erstellen ist so tierisch aufwendig...

Oder liege ich da komplett falsch mit meiner Überlegung?!

_________________
Xzeer
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 27.04.11 14:54 
Der Unterschied im Designer ist nur der partielle Designer-Teil (z.B. Form1.Designer.cs oder UserControl1.Designer.cs).

Am besten siehst du das wenn du einfach ein UserControl erstellst, die Ableitung von Control auf TabPage änderst und schaust was passiert ^^
Xzeer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 62



BeitragVerfasst: Mi 27.04.11 15:04 
Okay hab die Idee mal ausprobiert und kann jetzt zwar Elemente platzieren, auf meiner CustomTabPage werden die aber leider nicht angezeigt...

//EDIT:
Ups da war ich zu schnell. Die Elemente werden doch angezeigt, jedoch kann ich die Position durch verschieben der Elemente im Desginer nicht verändern. Der Button klebt auf der TabPage immer bei 0|0...

_________________
Xzeer
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 27.04.11 15:34 
Ich hab grad mal geschaut:
Im Designer fehlt ihm für jedes Control eine Codezeile this.Controls.Add(this.BlaBlaControl));

Man könnte natürlich auch einfach ein eigenes UserControl (nicht von TabPage abgeleitet) erstellen, da funktioniert der Designer ja normal, und dieses Dann einfach einer TabPage hinzufügen tabPage1.Controls.Add(new MyUserControl());
Wobei du dann natürlich nicht einfach auf die einzelnen Controls und deren Events zugreifen kannst (oder du musst sie halt vom UserControl durchreichen lassen bzw gleich da abhandeln).
Xzeer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 62



BeitragVerfasst: Mi 27.04.11 15:51 
Der erste Teil deines Positing ist mir klar.
Habe die Zeile hinzugefügt und der Button ist nun auf meiner TabPage sichtbar.

Den zweiten Teil verstehe ich nicht ganz.
Ich erkläre mal genauer was ich meine:

Und zwar brauche ich ein TabControl, indem ich zur Laufzeit neue TabPages öffnen kann. Wie bei Browsern zum Beispiel das Tabbed-Browsing. Die Tabs die ich öffnen möchte sehen grundsätzlich gleich aus. Deshalb habe ich mir überlegt eine Klasse von TabPage abzuleiten, diese neue Klasse kann ich dann ja instanzieren und im TabControl dynamisch öffnen.

Soweit geht das ja auch. Nur ist es ziemlich nervig die Oberfläche der CustomTabPage von Hand zu erstellen und deshalb suche ich eine Möglichkeit das mit dem Forms-Desginer zu machen...

_________________
Xzeer
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 27.04.11 16:01 
Dann dürfte der Weg über ein eigenes UserControl der richtige sein.

Erstelle dir ein normales UserControl. (nenn wir es mal MyUserControl)
Bau es dir mit dem Designer so zurecht wie du es möchtest.

Wenn im Programm eine neue TabPage mit deinen Inhalten erstellt werden soll:
ausblenden C#-Quelltext
1:
2:
3:
TabPage newTabPage = new TabPage();
newTabPage.Controls.Add(new MyUserControl());
tabControl.TabPages.Add(newTabPage);
Xzeer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 62



BeitragVerfasst: Mi 27.04.11 16:09 
mhh hab da irgendwie ein brett vom kop...

ich möchte doch gar kein neues usercontrol haben, sondern nur schon vorhandene auf einer eigenen tabpage anordnen...

_________________
Xzeer
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 27.04.11 16:17 
Wie du ja gesehen hast Unterstützt die TabPage den Designer nicht wie ein normales UserControl.
Deswegen ein normales UserControl erstellen (wo der Designer normal zu bedienen ist) damit du der TabPage nurnoch 1 Control (dein UserControl was ja alle deine gewünschten Controls enthält) anstelle von mehreren (je nachdem wieviele du beabsichtigt hattest) hinzufügen musst.
Xzeer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 62



BeitragVerfasst: Mi 27.04.11 16:32 
aso, dass klingt logisch. :wink:

schonmal vielen dank für deine hilfe, werde das gleich direkt ausprobieren...

//EDIT:
So ausprobiert und klapp supi.
bin begeistert... :D

_________________
Xzeer