Announcement

Collapse
No announcement yet.

Button + EventHandler automatisch erstellen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Aso ja das stimmt allerdings muss er mitm casten aufpassen.

    Ich denke in seiner Zeile 3 würde es scheppern, wenn das Control kein Button wäre. Dann wäre die Referenz nämlich null und auf man es würde eine NullReferenceException geworfen werden, wenn man versucht auf die Property Name zuzugreifen.

    Dann so:

    [highlight=c#]
    for ( int x = Controls.Count - 1; x >= 0; x-- ) {
    Button btn = Controls[x] as Button;
    if ( btn != null) {
    if(btn.Name.StartsWith("NewButton") {
    Controls.Remove(btn);
    }
    }
    }
    [/highlight]

    Comment


    • #17
      Deswegen habe ich doppeltes '&&' verwendet: Wenn das Control kein Button ist, wird btn durch as auf null gesetzt. Wenn btn gleich null ist, wird der zweite Teil der if-Abfrage garnicht untersucht. Also klappt mein Vorgehen ohne Exception. Jürgen

      Comment


      • #18
        nur zum Verständnis meinerseits, warum muss die For Schleife rückwärts laufen?

        Edit:
        Ich glaub ich habs gerafft. Man löscht ja mit der Methode hin und wieder dinge aus der Liste dadurch würde sich ja die CountProperty ändern. Läuft man gegen Null funktioniert es immer.
        Unsere Jugend ist unerträglich, unverantwortlich und entsetzlich anzusehen! - Aristoteles

        Comment


        • #19
          Richtig, und man überspringt im Extremfall jeden zweiten Eintrag. Jürgen

          Comment


          • #20
            Ah OK das ist mir neu, dass bei && nur der erste Operand ausgewertet wird wenn dieser false ist. Man lernt nie aus beim Programmieren. Man nennt das übrigens lazy evaluation. Ich dachte bei logischen Ausdrücken werden erst alle Operanden berechnet und dann die einzelnen Operanden logisch miteinander verknüpft.

            Comment

            Working...
            X