Laden...

Alle Checkboxen in Schleife durchgehen

Erstellt von mrennen vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.550 Views
M
mrennen Themenstarter:in
166 Beiträge seit 2008
vor 15 Jahren
Alle Checkboxen in Schleife durchgehen

Hallo mal wieder,

heute habe ich eine etwas "doofe" Frage. Ich habe auf einer Form hunderte von Checkboxen die alle nach dem gleichen Muster durchnummeriert sind (checkbox1, checkbox2, usw.)

Jetzt möchte ich die, je nach Buttonklick, ändern (true, false, readonly, usw.).

Muss ich wirklich je Buttonklick alle Checkboxen einzeln wieder aufführen oder kann ich das auch über eine for Schleife regeln ?

for (int a; a<= 200; a++)
{
     checkbox + a + .visible = false
}

statt

checkbox1.visible = false;
checkbox2.visible = false;

usw...

Irgendwie stehe ich da auf dem Schlauch. Wenn da einer eine Lösung weiss wäre das super da ich mir Stunden an Arbeit sparen könnte

Gruß

Michael

J
3.331 Beiträge seit 2006
vor 15 Jahren

Du musst Dich nach den Hinweisen in [FAQ] Variablennamen zur Laufzeit zusammensetzen richten.

Siehe auch Wie poste ich richtig? Zuerst suchen, dann fragen.

Jürgen

B
196 Beiträge seit 2007
vor 15 Jahren

Das ParentControl(je nachdem Panel, Groupbox oder halt einfach dein Form) hat eine Auflistung aller Controls die darin sind.

parent.Controls[name]

Was du da rausbekommst ist allerdings vom Typ Control, falls du also direkt auf Funktionen/ähnliches eines bestimmten ControlTyps zugreifen willst (wie z.B. .Checked bei Checkboxen) musst du vorher noch entsprechend Casten.

Ist zwar nicht grade ein schöner weg aber er funktioniert.

Die version in der FAQ ist natürlich was sicherheit und sauberkeit angeht bedeutend schöner.

your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself

M
mrennen Themenstarter:in
166 Beiträge seit 2008
vor 15 Jahren

Ich habe aktuell folgenden Code (den ich ersetzen möchte):

            ceDok1.Properties.ReadOnly = true;
            ceDok2.Properties.ReadOnly = true;
            ceDok3.Properties.ReadOnly = true;
            ceDok4.Properties.ReadOnly = true;
            ceDok5.Properties.ReadOnly = true;
            ceDok6.Properties.ReadOnly = true;
            ceDok7.Properties.ReadOnly = true;
            ceDok8.Properties.ReadOnly = true;
            ceDok9.Properties.ReadOnly = true;

usw.

Bei den Checkboxen handelt es sich um DevExpress.XtraEditors.CheckEdit Boxen (und davon sehr viele).

Ich habe mir die Links angesehen, schonmal danke hierfür, jedoch komme ich damit irgendwie nicht klar 😦

M
mrennen Themenstarter:in
166 Beiträge seit 2008
vor 15 Jahren

Wenn ich folgendes eintrage (über die übergeordnete Control):

            foreach (DevExpress.XtraEditors.CheckEdit _checkbox in xtpDokumente)
            {
                _checkbox.Properties.ReadOnly = true;
            }

bekomme ich folgende Fehlermeldung:

Eine foreach-Anweisung kann nicht für Variablen vom Typ "DevExpress.XtraTab.XtraTabPage" verwendet werden, da "DevExpress.XtraTab.XtraTabPage" keine öffentliche Definition für "GetEnumerator" enthält.

J
3.331 Beiträge seit 2006
vor 15 Jahren