none
Kann man in einer Form einen Platz reservieren für versch.Ausgaben ähnlich einem Frame in HTML? RRS feed

  • Frage

  • Hi, ans Forum

    Ich möchte in einer Form einen Platz reservieren, der für verschiedene Ausgaben herhalten können sollte, wie etwa ein Framset mit seinen Targets in HTML. Geht das?

    Ein Tab-Control sozusagen, ohne die Tabs am oberen Rand. Je nach Klick könnte ich dann dieses oder jenes Panel mit seinen Controls an diesem reservierten Platz anzeigen. Geht das?

    Grüße, Toni

    Donnerstag, 12. August 2010 09:04

Antworten

  • Hallo Anton,

    Aha, angenommen ich hätte da im Zentrum der Form (wie beim Hauptframe in HTML) Platz für ein grosses Panel, dann müsste ich dieses Panel per Code mit den nötigen Controls füllen. Und wenn dann der User auf einen anderen Menüpunkt klickt, dann müsste ich ein neues Panel mit seinen Controls per Code entstehen lassen, das alte entladen oder auf Visible=Falsse setzen und das neue dann an die richtige Position bringen. Versteh ich das richtig?

    Zunächst, ja.

    Ich habe aber nicht die Möglichkeit ein paar Panels in der Entwurfsansicht zu gestalten und diese dann, je nach Bedarf auf diesen freien Platz im Zentrum der Form zu platzieren? Ist das richtig?

    Jein. Natürlich kannst Du mehrere zur Entwurfszeit mehrere Panels auf dem Formular platzieren, die zunächst ausgeblendet (Visible = False) sind. Wenn Du aber bereits zur Entwurfszeit weißt, wie die Inhalte dieses Panels im "Zentrum" aussehen soll, ist es wohl leichter, wenn Du einzelne UserControls erstellst, die Du ebenso, wie ein Formular mit Steuerelementen gestalten kannst und lädst dann zur Laufzeit jeweils eines dieser UserControls in Dein Formular bzw. in das Platzhalter Panel.

    UserControl-Klasse
    http://msdn.microsoft.com/de-de/library/system.windows.forms.usercontrol.aspx

    Entwickeln benutzerdefinierter Windows Forms-Steuerelemente mit .NET Framework
    http://msdn.microsoft.com/de-de/library/6hws6h2t.aspx


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Donnerstag, 12. August 2010 10:39
    Moderator

Alle Antworten

  • Hallo Anton,

    Ein Tab-Control sozusagen, ohne die Tabs am oberen Rand. Je nach Klick könnte ich dann dieses oder jenes Panel mit seinen Controls an diesem reservierten Platz anzeigen. Geht das?

    wenn Du dort ander Steuerelemente unterbringen möchtest, könntest Du ein Panel verwenden. Über Panel.Controls.Add kannst Du dort andere Steuerelemente einfügen.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Donnerstag, 12. August 2010 09:13
    Moderator
  • hi, thorsten

    Aha, angenommen ich hätte da im Zentrum der Form (wie beim Hauptframe in HTML) Platz für ein grosses Panel, dann müsste ich dieses Panel per Code mit den nötigen Controls füllen. Und wenn dann der User auf einen anderen Menüpunkt klickt, dann müsste ich ein neues Panel mit seinen Controls per Code entstehen lassen, das alte entladen oder auf Visible=Falsse setzen und das neue dann an die richtige Position bringen. Versteh ich das richtig?

    Ich habe aber nicht die Möglichkeit ein paar Panels in der Entwurfsansicht zu gestalten und diese dann, je nach Bedarf auf diesen freien Platz im Zentrum der Form zu platzieren? Ist das richtig?

    Was ich meine ist, so wie bisher verschiedenste Forms zu gestalten, diese aber nicht über der Hauptform anzuzeigen sondern in diese zu integrieren. Also so was wie:  Form2.Show, Target = Panel1. Das wird wohl nicht gehen.

    grüße, toni

     

     

    Donnerstag, 12. August 2010 10:03
  • Hallo Anton,

    Aha, angenommen ich hätte da im Zentrum der Form (wie beim Hauptframe in HTML) Platz für ein grosses Panel, dann müsste ich dieses Panel per Code mit den nötigen Controls füllen. Und wenn dann der User auf einen anderen Menüpunkt klickt, dann müsste ich ein neues Panel mit seinen Controls per Code entstehen lassen, das alte entladen oder auf Visible=Falsse setzen und das neue dann an die richtige Position bringen. Versteh ich das richtig?

    Zunächst, ja.

    Ich habe aber nicht die Möglichkeit ein paar Panels in der Entwurfsansicht zu gestalten und diese dann, je nach Bedarf auf diesen freien Platz im Zentrum der Form zu platzieren? Ist das richtig?

    Jein. Natürlich kannst Du mehrere zur Entwurfszeit mehrere Panels auf dem Formular platzieren, die zunächst ausgeblendet (Visible = False) sind. Wenn Du aber bereits zur Entwurfszeit weißt, wie die Inhalte dieses Panels im "Zentrum" aussehen soll, ist es wohl leichter, wenn Du einzelne UserControls erstellst, die Du ebenso, wie ein Formular mit Steuerelementen gestalten kannst und lädst dann zur Laufzeit jeweils eines dieser UserControls in Dein Formular bzw. in das Platzhalter Panel.

    UserControl-Klasse
    http://msdn.microsoft.com/de-de/library/system.windows.forms.usercontrol.aspx

    Entwickeln benutzerdefinierter Windows Forms-Steuerelemente mit .NET Framework
    http://msdn.microsoft.com/de-de/library/6hws6h2t.aspx


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Donnerstag, 12. August 2010 10:39
    Moderator
  • Danke, Thorsten, so werd' ich's machen.

    Grüsse, Toni

    Donnerstag, 12. August 2010 11:48