Eingabefeld anhand RadioButton erzeugen...

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Eingabefeld anhand RadioButton erzeugen...

    Guten Morgen,

    ich möchte anhand der Auswahl durch ein RadioButton circa 10 unterschiedliche Textfelder und Button - die zur weiterverarbeitung in meinem Programm nötig sind - erzeugen.
    Sprich wenn der RadioButton angeklick ist, stehen dem Benutzer Textfeld 1-10 zur Verfügung die mit "Leben" durch den Benutzer gefüllt werden müssen, wenn der Radio Button nicht angeklickt ist, werden Textfeld 11-20 angezeigt (z.B.)

    Ich habe erst an ein Panel gedacht wo die jeweiligen Textfelder enthalten sind um dort mit "Visible" zu arbeiten, funktionieren tut das, aber im Designer ist das schwer zu händeln, finde ich!
    Also ich habe jetzt ja zwei Panel auf der Form liegen, die ggf. was anderes verdecken etc. Ich muss sagen, dass ich bisher ausschließlich mit dem Designer arbeite, ohne irgendetwas zur Laufzeit zu generieren....das habe ich noch nicht gemacht.

    Wie mach ich das jedoch am elegantesten? Vielen Dank!

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

    @Alex0815 Mach Dir eine SetProperty-Klasse. Die hat eine Public Prozedur mit dem Parameter Nummer (1 ... 10) und der Instanz des Textfeldes.
    In dieser Prozedur machst Du ein Select Case Nummer und bei jedem Switch rufst Du eine Private Sub mit der Instanz des Textfeldes als Parameter auf.
    In diesen 10 Subs passt Du Deine Parameter an.
    Feddich.
    =======
    Um zu sehen, welchen Code Du da reinschreiben musst, mach die Änderungen im Designer und schreibe den relevanten Code aus der FormX.Designer.vb ab.
    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!
    Abhängig davon, wieviel Platz ist, könntest Du tatsächlich zwei Panels nebeneinander zeichnen (Panel1 links, Panel2 rechts), mit Code nur eines sichtbar machen, so wie Du es beschrieben hast und dann ggf. zur Laufzeit Panel2 über Panel1 schieben: Panel2.Left = Panel1.Left. Dann noch den Container (wird wohl derdiedas Form sein) entsprechend verkleinern (Me.Width = DeineNeueBreite). Fertig. Oder ein TabControl als Container benutzen, Header zur Laufzeit ausblenden und die TabPage abhängig vom RadioButton wählen.

    EDIT:
    btw: RadioButton? Nicht besser CheckBox? Nicht, dass der Benutzer versehentlich den RadioButton anklickt und seine Auswahl rückgängig machen will.
    Oder das Thema anders angegangen: ggf. generell zwei unterschiedliche Forms machen? Kommt natürlich drauf an, ob funktionale Überschneidungen in beiden RadioButton-Auswahlfällen vorhanden sind
    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.
    Abhängig davon, wieviel Platz ist, könntest Du tatsächlich zwei Panels nebeneinander zeichnen (Panel1 links, Panel2 rechts), mit Code nur eines sichtbar machen, so wie Du es beschrieben hast und dann ggf. zur Laufzeit Panel2 über Panel1 schieben: Panel2.Left = Panel1.Left. Dann noch den Container (wird wohl derdiedas Form sein) entsprechend verkleinern (Me.Width = DeineNeueBreite). Fertig. Oder ein TabControl als Container benutzen, Header zur Laufzeit ausblenden und die TabPage abhängig vom RadioButton wählen.

    EDIT:
    btw: RadioButton? Nicht besser CheckBox? Nicht, dass der Benutzer versehentlich den RadioButton anklickt und seine Auswahl rückgängig machen will.
    Oder das Thema anders angegangen: ggf. generell zwei unterschiedliche Forms machen? Kommt natürlich drauf an, ob funktionale Überschneidungen in beiden RadioButton-Auswahlfällen vorhanden sind



    ...vielen Dank!

    Alex0815 schrieb:

    Gibt es denn im Designer - so wie ich es gedacht habe mit zwei Panels auch eine Möglichkeit, oder wäre das fusch?
    Man kann ein TabControl nehmen.
    Wenn man da 2 TabPages drauf hat, und zur Laufzeit die Reiter versteckt, dann hat man sozusagen 2 Panels übereinander.
    Und das Angenehme ist, dass zur Designzeit die Reiter sichtbar und benutzbar sind, so dass man die Pages sehr komfortabel gestalten kann.

    Den Ansatz habich hier ausgeführt: TabControl ohne Reiter