Checkboxen in Schleife abarbeiten

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von nemesis.

    Checkboxen in Schleife abarbeiten

    Hallo,

    ich möchte ein Programm erstellen, mit dem sich eine Datei auf mehrere Rechner verteilen lässt. Dazu habe ich Checkboxen und dazugehörige Textfelder angelegt. Für jeden PC eine Checkbox und der zugehörige Pfad im Textfeld. In einem weiteren Textfeld steht der Pfad zur zu kopierenden Datei.
    Ich möchte nun die Checkboxen, die numeriert sind in einer Schleife durchlaufen und bei denen die aktiviert sind die Datei an den Pfad im zugehörigen Textfeld kopieren.

    Mein Gedanke dazu:

    VB.NET-Quellcode

    1. For Each obj In Me.Controls
    2. If TypeName(obj) = "CheckBox" Then
    3. Mach was
    4. End If
    5. Next

    So läuft er alle Checkboxen durch. Wobei er die Checkbox0 ignorieren sollte, da diese dafür gedacht ist, alle zu aktivieren.
    Aber wie komme ich nun von CheckBox1 zu Textfeld1 ?
    Muss ich hier den Namen des Objekts nach der Nummer am Ende des Strings durchsuchen und diese an den String TextBox anhängen?

    Vielen Dank!

    nemesis schrieb:

    Aber wie komme ich nun von CheckBox1 zu Textfeld1 ?

    Wenn Du einen derartigen kausalen Zusammenhang hast, solltest Du Dir ein

    VB.NET-Quellcode

    1. Dim dc As New Dictionary(Of CheckBox, TextBox)
    anlegen und dort die zusammenhängenden Controls paarweise einfügen. Damit ist gesichert, dass Dein Programm nach einer Umbenennung von Objekten noch voll funktioniert.
    Dieses Dictionary kannst Du auch mit For Each durchlaufen.
    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!
    Dies läuft nicht, da Controls hinzugefügt werden sollen, Du müsstest also die Controls mit dem entsprechenden Namen holen.
    Solchen Code würde ich allerdings tunlichst vermeiden.
    Füge Deine Controls einzeln hinzu.

    VB.NET-Quellcode

    1. Dictionary.Add(CheckBox1, Textbox1)
    2. Dictionary.Add(CheckBox2, Textbox2)
    3. Dictionary.Add(cbTest, tbSonstwas)
    Die Kollegen, die hier für eine ordentliche Benennung der Controls werben, möchten dies bitte berücksichtigen.
    Die anderen mögen bitte die diversen Code-Styling-Artikel lesen.
    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!