theme per combobox ändern (form design)

  • Allgemein

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    theme per combobox ändern (form design)

    Guten Tag,
    ich möchte ein Design changer machen für meine Form und das per Combobox.
    Das heißt ich muss die Class ändern, denn mein Design ist in der Class, ich habe jetzt 2 Class's und in jeder ist ein Design, nur wie wähle ich die Direkt aus?
    Kannst Du vllt. ein wenig tiefschürfender beschreiben, was Dir da vorschwebt?
    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!
    also ich will ne combobox machen womit ich 2. bestimme classen wählen kann für das design das heißt im einem class ist das design blau und im anderen ist es grau und ich will machen das man das per combobox auswählen kann

    Edit by ErfinderDesRades: Zitate des direkten Vorposts sind unnötig!
    -->unnötiges Vollzitat entfernt

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Du hast also zwei verschiedene Forms gemacht, die genau das selbe zeigen nur mit unterschiedlicher colorierung?
    Dir ist schon klar, dass du per code die Hintergrundfarben etc verändern kannst?

    Ansonsten ist ein Design-System das so aufgebaut ist bastelarbeit hoch dreiundzwanzig. Unter WPF sollte das wesentlich besser gehen - ich habe davon allerdings keine Ahung^^

    lg
    okay ich weiß leider nicht wie so eine design-klasse aussieht und desshalb kann ich auch nicht wissen wie man es der form zuweist und auch nicht wie man es per combox ändern kann und helfen kann ich dir vllt wenn ich etwas code zusehen bekomme
    und vllt kannst du dein vorhaben noch etwas genauer erklären ohne das was im post #1 steht zu wiederholen^^

    Gammler03 schrieb:

    denn mein Design ist in der Class, ich habe jetzt 2 Class's und in jeder ist ein Design
    Also wenn du wirklich für jedes Design eine eigene Klasse hast, dann ist das falsch, und man kann dir nicht helfen.

    Tatsächlich müsste es ein und dieselbe Klasse sein, und von dieser Klasse erstellst du mw. 2 Instanzen: bei der einen ist die Hintergrundfarbe grün, und bei der anneren blau - wasweißich.

    Diese beiden Instanzen kannst du bequem in eine List(Of Class) tun, und daran eine Combobox binden.

    Aber kommen wir zur Benamung "Class" ist der bescheuertste Name, der sich ausdenken läßt. Nenn die Klasse doch "Design" - dann weiß man gleich, worum es sich handelt.

    Und die List(Of Class) würde dadurch zur List(Of Design), und das wäre nur umso besser!

    Und was auch wichtig ist, wenn deine Designs auch eine Name-Property hätten, damit die Combo auch was gescheites anzeigen kann.
    Dann nämlich kannst du machen:

    VB.NET-Quellcode

    1. DesignList=new List(Of Design)
    2. DesignList.Add(blabla)
    3. DesignCombo.DataSource = DesignList
    4. DesignCombo.DisplayMember="Name"
    Und die Combo wird die Design-Namen anzeigen

    Und dann:

    VB.NET-Quellcode

    1. private Sub DesignCombo_IndexChanged(sender as Object, e as EventArgs)Handles DesignCombo.IndexChanged
    2. dim design As Design = DesignList(DesignCombo.SelectedIndex)
    3. '... Design anwenden ...
    4. End Sub
    So habs ich, ist zwar "etwas" unsauber (is von dem sehr altem Project) aber naja:
    Zuerst mal die Sub:

    VB.NET-Quellcode

    1. Public Sub ThemeGreen()
    2. 'blabla Code
    3. End Sub


    Und die Combobox zum Design Changen:

    VB.NET-Quellcode

    1. Private Sub cbLayoutStyle_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbLayoutStyle.SelectedIndexChanged
    2. Select Case cbLayoutStyle.Text
    3. Case "Green"
    4. call.ThemeGreen
    5. Case "Black"
    6. call.ThemeBlack
    7. End Select
    8. End Sub
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    @Gammler03: Ich habe das Gefühl, dass Du mit Kanonen auf Spatzen schießt.
    Kläre folgende Fragen:
    - Wird Deine Form final mit dem gewählten Design gestartet oder kann das Design zur Laufzeit verändert werden?
    - Genügt nicht ein Parameter im Konstruktor (Enum), um der Form beim Erstellen das Design zuzuweisen?
    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!