Beim TabControl TabPages wechsel Button auf dem Form ein bzw. ausblenden

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Beim TabControl TabPages wechsel Button auf dem Form ein bzw. ausblenden

    Hallo, ich eine Form auf der ich ein TabControl mit zur Zeit 3 Pages habe.
    Auf der Form befinden sich auch drei Buttons.

    Nun möchte ich beim Wechsel eines Tab´s, einen Button ausblende und einen anderen einblenden.

    Wie kann ich das umsetzen.

    Danke
    Holger


    Sorry ich fange erst wieder mit vb.net an.

    Habe auch hier schon etwas gefunden in meinem Schä......

    VB.NET-Quellcode

    1. Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    2. If TabControl1.SelectedIndex = 1 Then
    3. Button1.Text = "Test"
    4. End If
    5. End Sub


    Die Frage ist nun aber geht das auch eleganter

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „debus“ ()

    ausblenden: ButtonX.Visible = False
    einblenden: ButtonX.Visible = True
    Button1 ist eine ganz schlechte Bezeichnung.
    Wenn bei den Button-Clicks was komplett anderes passieren soll, verwende nicht immer den selben Button, den Du nur anders beschriftest. Nutze besser wirklich 3 verschiedene Buttons. Und arbeite ggf. statt mit .Visible eben mit .Enabled.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @debus Deine Beschreibung macht keinen Sinn.
    Warum willst Du das Schalten der Sichtbarkeit an den Tab-Wechsel koppeln?
    Da werden doch eh Pages sichtbar oder nicht.
    Falls Du denselben Button auf mehreren TabPages sichtbar haben willst, musst Du als sein Parent die entsprechende TabPage zuweisen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe es so verstanden, dass die Buttons neben dem TabControl liegen. Also direkt auf dem Form. Nicht darin.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Ja, ist mir auch gerade aufgegangen.
    Nur dann gehören diese Button auf das TabControl, ggf. zu mehreren Tabs.
    Sozusagen eine Kombination unserer Vorschläge. 8o
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    debus schrieb:

    und ändert sich und sein Verhalten je nach Auswahl einer Page.
    Das ist ein Design-Fehler.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany warum? Mache ich genauso.
    Als Beispiel : der User muss verschiedene Tabs mit Datenfeldern füllen.
    Zur Orientierung hat er unten drunter einen 'Zurück' und einen 'Weiter' Button. Der Buttontext sowie das Ziel beim Click ändert sich ja entsprechend dem aktuell ausgewählten Tab. Wo ist da jetzt der Design-Fehler?
    Wenn ich es richtig verstanden habe ist das doch die Problematik, die @debus hier angesprochen hat.
    Weil man Mehrfachlogik und entsprechende Fallunterscheidung im Button_EventHandler einbauen muss. Schon ein einfaches Vor-Zurück pro TabPage dürfte da deutlich schlanker werden: Weil: Eine Codeeinsparung hat man durch das Zusammenfassen in einem Button nicht. Im Gegenteil. Und im dümmsten Fall muss man auch noch die Buttonbeschriftungen ändern usw.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Danke.
    @ThomasG82 Dann machst Du es auich falsch.
    Der Code muss pflegbar bleiben.
    Weißt Du in einem halben Jahr noch, warum Du da .Visible = False und einen Haufen If-Statements stehen hast?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok ich verstehe worauf ihr hinaus wollt. Aber ehrlich gesagt ja ich weiß es auch noch nach Jahren. Zum einen pflege ich ordentliche Dokumentationen, ein längst vergangenes gut, und bei mir wird bei jedem TabPage Aufruf ein bestimmtes Modul aufgerufen und in dem Aufruf stehen alle Veränderungen. Und da alle module ordentlich dokumentiert sind ist auch nach Jahren noch der Hintergrund eines aufrufes nachvollziehbar. Aber das ist vermutlich einfach eine Art eigene Handschrift im Code und von Programmierer zu Programmierer unterschiedlich
    Und doch must Du anhand der selektierten TabPage festlegen, welche Aktion bei Button-Klick ausgeführt wird. Also eine zusätzliche Abhängigkeit vom vorhandenen GUI-Design. Solltest Du es ändern wollen, hast Du m.E. mehr Arbeit als ohne die Abhängigkeit. Kann natürlich sein, dass das bei Dir schlüssig gelöst ist und dass Du keine Designänderung vornehmen wirst. Ich würde es aber so nicht machen. Persönliche Meinung aus genannten Gründen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.