Autor Beitrag
derjonny
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 15.04.10 17:53 
Huhu ich wieder und noch eine frage. :D ihr seid alle immer so nett.
ich habe ien reset button in meinem Programm nun möchte ich aber nicht alle CheckBox in dem Programm rein schreiben.
kann man das mit einem array oder einer schleife realisieren??
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
chBWied1.Checked = false;
chBWied2.Checked = false;
...
...
...
...
...
...
// usw bin 20
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 15.04.10 18:08 
Genauso wie ich es in der anderen Diskussion für die Initialisierungen angegeben hatte. Jürgen
norman2306
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 222
Erhaltene Danke: 16

Win XP, Win 7 64-Bit
C# 4.0 (VS2010)
BeitragVerfasst: Do 15.04.10 19:11 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
foreach(Control item in Controls)
{
    if(item is Checkbox)
       ((Checkbox)item).value = false;
}
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 15.04.10 19:17 
Normans Antwort entspricht dem, was ich Johnny schon gezeigt hatte.

@Norman
Bitte korrigiere deinen Fehler nicht, er soll ihn selbst finden und verbessern!

Gruß Jürgen
norman2306
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 222
Erhaltene Danke: 16

Win XP, Win 7 64-Bit
C# 4.0 (VS2010)
BeitragVerfasst: Do 15.04.10 19:37 
;) hatte es nur schnell hin geklatscht. Ist mir garnicht aufgefallen. Aber das dürfte ja kein Prob sein...

Sorry, wollte dich nicht übermannen.
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 16.04.10 11:05 
hmmm ja problem ist jadas ich noch nicht so viel gemacht habe mit c#.
also ich muss doch irgendwie erstmal die Checkbox namen zuweisen? oder nicht? ich verstehe das nicht ganz. :(

Irgendwie so vieleicht?
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Boolean[] item = new Boolean[] {Convert.ToBoolean(chBWied1,chBWied2)};
           

            foreach (Control item in Controls)  // Wie kann ich das verstehen was er hier macht?
            {
                if (item is Checkbox) 
                    ((Checkbox)item).Checked = false;
            }
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 16.04.10 14:48 
Habe jetzt eine neue Lösung.
Könnte das eventuell klappen? Bei mir sagt er "Der Name "chBWied" ist im aktuellen Kontext nicht vorhanden."
Würde mich auf eine schnelle antwort freuen... :D

ausblenden C#-Quelltext
1:
2:
3:
4:
  for (int i = 1; i <= 10; i++)
            {
                chBWied(i).Checked = false;
            }
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Fr 16.04.10 15:09 
Nimm den Vorschlag von Jürgen und norman2306 an. Dann musst du lediglich ein Form mit CheckBoxen platzieren und es tut was du willst. Alternativ kannst du CheckBoxen auch gruppieren, d.h. du erzeugst CheckBoxen und fügst diese einer Collection (zum Beispiel List) hinzu und interrierst über diese Collection. Dann benötigst du keinen is Abgleich mehr und wenn noch andere TextBoxen auf der Form ist sind diese zu vernachlässigen.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
List<CheckBox> checkBoxGroup = new List<CheckBox>();

checkBoxGroup.Add(checkBox1);
checkBoxGroup.Add(checkBox2);
...

SetValue(true, checkBoxGroup);

public void SetValue(bool value, List<CheckBox> checkBoxes)
{
   foreach ( var checkBox in checkBoxes)
   {
      checkBox.Value = value;
   }
}
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 16.04.10 15:33 
ich danke euch für die vielen vorschläge. Aber ich kann das von jürgen und normann leider nicht richtig deuten wie gesagt ich bin neueinsteiger.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 16.04.10 16:37 
Daniels Vorschlag ist u.U. schöner, erfordert aber in der Tat für Anfänger zuviel Wissen.

Zu deiner obigen Frage, was Controls ist. Das wäre auch ein Anlass, um selbst in der SDK-Doku/MSDN/Hilfe nachzulesen, wozu gibt es einen Hilfe-Index. Jedes Control - beginnend bei Form - hat eine solche Eigenschaft, in der alle Controls gesammelt werden, die dort eingebettet sind. Im einfachsten Fall sind alle TextBoxen, CheckBoxen usw. direkt auf dem Formular (Form) platziert, dann durchläuft die foreach-Schleife (siehe meinen alten und Normans jetzigen Vorschlag) alle Elemente von this.Controls (und this kann fast immer, auch hier, weggelassen werden).

Wenn die Elemente auf einem Panel sitzen, musst du specialPanel.Controls durchlaufen, und bei einer GroupBox eben specialGroupBox.Controls. (Bitte frag jetzt nicht, was specialPanel ist; jedem Control gibst du doch deinen Namen.)

In der anderen Diskussion hatte ich bereits einige Voraussetzungen für dieses Verfahren genannt. Welche bei dir erfüllt sind, weiß ich natürlich nicht, denn du hast (zum Glück) nicht das ganze Programm zitiert. Aber die Ratschläge musst du dann anpassen.

user profile iconderjonny hat folgendes geschrieben Zum zitierten Posting springen:
Habe jetzt eine neue Lösung.
Könnte das eventuell klappen? Bei mir sagt er "Der Name "chBWied" ist im aktuellen Kontext nicht vorhanden."

Ich kann auch nicht sehen, dass du chBWied deklariert hast, vor allem nicht als Methode, damit es als chBWied(i) benutzt werden könnte. Oder meinst du chBWied[i]?

Was sollte eigentlich die folgende Konstruktion:
user profile iconderjonny hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
1:
Boolean[] item = new Boolean[] {Convert.ToBoolean(chBWied1,chBWied2)};					

Zwei CheckBoxen zusammenfassen und in einen bool-Wert konvertieren? aus diesem einen bool-Wert ein bool-Array machen? ein Array als item bezeichnen?

Du musst erheblich genauer auf die verwendeten Datentypen achten und nicht alles mischen! Vielleicht solltest du erst einmal Schritt für Schritt genau aufschreiben, was du machen willst.

Gruß Jürgen
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 16.04.10 16:57 
Ich habe es Jetzt so gemacht. Naja gut das hatte ich auch schon raus Bevor mir Daniel das Geschrieben hat. :D trozdem vielen dank.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
List<CheckBox> CB = new List<CheckBox>(); // Gibt eine Liste für die Checkboxen einer Variable zu und erstellt die neue Liste
            CB.Add(chBWied1);
            CB.Add(chBWied2);
            CB.Add(chBWied3);
            CB.Add(chBWied4);
            CB.Add(chBWied5);
            CB.Add(chBWied6);
            CB.Add(chBWied7);
            CB.Add(chBWied8);
            CB.Add(chBWied9);
            CB.Add(chBWied10);
            
            foreach (CheckBox c in CB) // Für jede Checkbox mit der Variable CB
                {
                    c.Checked = false;
                }


Die frage ist ja wie mache ich es wenn ich sage mal bin zu 100 CheckBox habe?
Ich dachte er es geht vieleicht so dass ich eine checkbox angebe und dann Geht er mit der zahl immer einen weiter. Deshalb dache ich es geht mir der for schleife
die ich vorhin geposted habe.
Naja gut im endefekt will cih eigentlich nur das alle Eingaben und einstellungen zurücksetze.
Mir würde noch einfallen es so zu lösen dass "Form" einfach neu zu starten?!
norman2306
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 222
Erhaltene Danke: 16

Win XP, Win 7 64-Bit
C# 4.0 (VS2010)
BeitragVerfasst: Fr 16.04.10 22:00 
was gefällt dir an der Lösung von mimr oben nicht, außer das ein Buchstabe falsch geschrieben ist? Kürzer geht es ja wohl kaum...
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 17.04.10 09:10 
:D nein das meine ich nicht die lösung ist super...:D aber ich dache ich bekomme das auhc so hin das er autromatisch hoch zählt..:D weist wie ich das meine??
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 17.04.10 10:50 
user profile iconderjonny hat folgendes geschrieben Zum zitierten Posting springen:
:D nein das meine ich nicht die lösung ist super...:D aber ich dache ich bekomme das auhc so hin das er autromatisch hoch zählt..:D weist wie ich das meine??

Wo soll er hochzählen? Meinst du: bei den Namen der Variablen? Wenn du schon in anderen Foren schaust, dann solltest du dort auch richtig hinsehen, nämlich unter [FAQ] Variablennamen zur Laufzeit zusammensetzen.

Jürgen

PS 1. Ich finde es enttäuschend, dass du eine hier bereits beantwortete Frage und Hilfestellung noch einmal neu stellst. Aber dort bist du ja gegen die Wand gelaufen.

PS 2. Siehe auch [Tipp] Anfängerfehler == true / == false

PS 3. Ich nehme doch an, dass du sozusagen vom Fach bist. Dann solltest du wissen, wie Widerstand geschrieben wird.