Summe mit checkboxen und textboxen

snoo

Grünschnabel
Hallo,

ich hab folgendes Problem..
ich hab ca. 20 checkboxen mit dazugehörigen textboxen und wenn man auf den button summe klickt, sollen die werte der angeklicksten checkboxen zusammen gezählt werden, die in den textboxen stehn.

eine idee?

mfg

michael
 
moin

mach nen EventHandler für den Click auf den Button
in dem machst du dann so was ähnliches wie das hier:

Code:
foreach(CheckBox cb in this.Controls)
{
  if(cb.Checked)
  {
    //irgendwie die Textbox ansprechen, Wert parsen und dazuaddieren
  }
}

wie du jetzt die Textbox ansprichst, weiss ich im moment leider auch nicht....musst du dir eben was überlegen :)


mfg broetchen
 
Woran scheitert es denn? Es gibt mehrere mögliche Ansätze.
Du könntest beispielsweise je ein Array für die Checkboxen und eins für die Textboxen nehmen, über das du mit einer Schleife iterierst und jedes Element der beiden Array überprüfst. Eine andere Möglichkeit wäre die Controls-Auflistung innerhalb des Formulars, mit dem du dann den Typ, Namen und Status überprüfen kannst. Eine dritte Variante wäre es, ein eigenes Control zu erstellen, das Checkbox und Textbox miteinander vereint. Oder du könntest es auch einfach statisch programmieren, was allerdings den Code ziemlich unnötig aufblähen würde.
 
wie du jetzt die Textbox ansprichst, weiss ich im moment leider auch nicht....musst du dir eben was überlegen :)
Über eine bestimmte Form innerhalb des Control-Namens. Beispielsweise kannst du die Checkboxen nach dem Muster checkCalcXX und die Textboxen nach dem Muster textCalcXX benennen, wobei die XX für eine durchlaufende Nummer stehen. Den Namen untersuchst du dann und holst dás dazugehörige Control auf der anderen Seite heraus.
Ansonsten gab es auch mal eine Eigenschaft namens Tag, die man benutzen konnte, um bestimmte Informationen in ein Control zu schreiben, ohne dessen Funktion zu beeinträchtigen. Falls es die in .net noch gibt, kannst du damit vermutlich auch was machen.
 
hallo,

so ich hab mal das erstere ausprobiert und sieht bei mir so aus:

Code:
foreach(CheckBox checkBox in this.Controls)
{
	if(checkBox.Checked)
	{
	          foreach(TextBox textBox in this.Controls)
	 {
						dSum = Convert.ToDouble(textBox.Text) + dSum ;
					}
				}
			}

leider funktioniert es nicht.
Fehler:

An unhandled exception of type 'System.InvalidCastException' occurred in Sicherheitsbeauftragter.exe

Additional information: Specified cast is not valid.

nur leider keine Ahnung was das heissen soll, so gut kenn ich mich nicht aus mit c#, leider.

vielleicht könnt ihr mir weiterhelfen.

mfg

michael
 
Zurück