RadioButton in schleife abfragen C#7

Gast #3894519
Hallo Experten,
ich habe mehrere RadioButtons und möchte diese in einer Foreach Schleife 
abfragen!
1
foreach (RadioButton rB in rBList)
2
            {
3
                if (rB.Checked== true)
4
                {
5
                    wert |= (1 <<INDEX);
6
                }
7
            }

leider komme ich nicht auf die Indexnummer bzw schleifen Zähler!
Wie mache ich das?
Bitte nicht lachen aber ich bin Anfänger!

LG

Oswald
Gast #3894531
Sorry habe das falsche Element verwendet!
Ich baue es jetzt auf Checkboxen um!
Wie komme ich da auf den index der schleife!
1
foreach (CheckBox ceckB in ceckBList)
2
            {
3
                if (ceckB .Checked== true)
4
                {
5
                    wert |= (1 <<INDEX);
6
                }
7
            }
Gast #3894538
Hallo Oswald,
die Anzahl deiner Checkboxen ist doch fest. Speichere die Referenzen 
nicht in einer Liste sondern einem Array. Dann kannst du eine 
for-Schleife nehmen und hast einen Index.

Bei deinem ursprünglichem Ansatz könntest du noch eine Zählvariable 
hinzufügen (int i = 0; ...; i++).

MfG Sven
Gast #3894662
Ich kenne nun Deine verwendete Liste nicht, aber die normalen Listen 
haben eine Count Eigenschaft und einen Indexer. Erstelle also eine 
Schleife bis List.Count und greife über den Indexer auf die Elemente zu.
#3894671
Du kannst für jedes Checkbox Objekt auch die "Tag" Eigenschaft setzen 
und dann in der Schleife auswerten.

Ansonsten kannst du es so machen (wenn deine Checkboxen in einen List 
Objekt gespeichert sind):
1
for (int i=0; i < ceckBList.Count; i++)
2
{
3
  CheckBox ceckB = ceckBList[i];
4
  //usw.
5
}
#3894716
Ich gebe zu meine Antwort geht ein bisschen an Deiner Frage vorbei, 
aber:

Normalerweise reagiert man doch auf die Status Änderung eines Benutzer 
Steuerelements über einen Event. Deine Checkboxen haben doch ein OnClick 
/ Action oder ValueChanged event. Da kannst Du doch in dem EventHandler 
Deinen Code reinschreiben. Ist das nicht viel praktischer als die Boxen 
in einer Schleife abzufragen?
#3894853
So kann eine direkte Lösung aussehen:
1
int Wert = 0;
2
int Mask = 1;
3
foreach (CheckBox ceckB in ceckBList)
4
{
5
    if (ceckB.Checked)
6
    {
7
        Wert |= Mask;
8
    }
9
    Mask <<= 1;
10
}

Dierk V. schrieb:
> Normalerweise reagiert man doch auf die Status Änderung eines Benutzer
> Steuerelements über einen Event.

Wenn es um einen Eingabedialog geht, sammelt man sinnvollerweise mit dem 
Klick auf den Button "OK" die Daten ein und prüft auf Plausibilität. Und 
schon hast Du den Salat.
#3895041
Eddy Current schrieb:

> Wenn es um einen Eingabedialog geht, sammelt man sinnvollerweise mit dem
> Klick auf den Button "OK" die Daten ein und prüft auf Plausibilität. Und
> schon hast Du den Salat.

Man kann doch auch im Event Handler auf Plausibilität prüfen. Falls das 
nicht möglich sein sollte (warum auch immer) ändert der Event Handler 
eben nur eine Variable deren Inhalt beim Klick auf "OK" geprüft wird.

Viele Wege füren nach Rom, ich finde meinen eleganter, aber das ist 
subjektiv.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.