none
Object anhand des Namens finden

    คำถาม

  • Hallo zusammen.

    Mit C# habe ich erst seit ca. 2 Wochen zu schaffen, sonst programiere ich mit Delphi.

    Ich habe auf meinem Form mehrere Edits (EdM1,EdM2,...) in die der User Einträge macht.
    Nun möchte ich den Text der einzelnen Edits anhand eines Zählers auslesen, dazu müsste ich das Edit jedoch durch den Namen des Objects ansprechen.
    In Delphi gibt es dafür die findcomponent-Anweisung (TEdit(FindComponent('EdM' + intToString(Zahl))).Text).

    Gibt es in C# etwas vergleichbares?

    Danke schon mal.
    Jens

    24 กุมภาพันธ์ 2555 7:27

คำตอบ

  • Hallo Jens,

    wenn deine Form eine Windows Form ist, kannst du deine Edits über die Controls Eigenschaft der Form ansprechen:

                int zahl = 1;
                TextBox edit = (TextBox)Controls["EdM" + zahl];
    

    Falls deine Edits in einem Container sind (z. B. in einem Panel), solltest du die Find-Methode der ControlCollection verwenden, da die Controls-Eigenschaft nur die Liste der direkt auf dem Form platzierten Elemente enthält:

                Control[] edits = this.Controls.Find("EdM" + zahl, true);
                if (edits.Length == 1) {
                    TextBox firstEdit = (TextBox)edits[0];
                }
    
    Peter
    • ทำเครื่องหมายเป็นคำตอบโดย Jens Jung 24 กุมภาพันธ์ 2555 10:42
    24 กุมภาพันธ์ 2555 9:28

ตอบทั้งหมด

  • Hallo Jens,

    wenn deine Form eine Windows Form ist, kannst du deine Edits über die Controls Eigenschaft der Form ansprechen:

                int zahl = 1;
                TextBox edit = (TextBox)Controls["EdM" + zahl];
    

    Falls deine Edits in einem Container sind (z. B. in einem Panel), solltest du die Find-Methode der ControlCollection verwenden, da die Controls-Eigenschaft nur die Liste der direkt auf dem Form platzierten Elemente enthält:

                Control[] edits = this.Controls.Find("EdM" + zahl, true);
                if (edits.Length == 1) {
                    TextBox firstEdit = (TextBox)edits[0];
                }
    
    Peter
    • ทำเครื่องหมายเป็นคำตอบโดย Jens Jung 24 กุมภาพันธ์ 2555 10:42
    24 กุมภาพันธ์ 2555 9:28
  • Hallo Peter,

    das funktioniert super.

    Da die TextBoxen (das Edit hab ich mir von Delphi angewöhnt) in einer GroupBox sind, habe ich direkt die zweite Variante gewählt.

    Vielen Dank
    Jens

    24 กุมภาพันธ์ 2555 10:47