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
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
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
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 😦
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.