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



BeitragVerfasst: Do 15.04.10 13:35 
Hallo. :D
Ich habe in meinen letzten beitraägen auch schön richtig hilfreiche antworten bekommen. Denke mal ihr wisst auch diesmal einen rat.
Ich habe hier meinen Quelltext der soll folgendes machen.
Wenn ich auf den button "Beispiel" klicke dann möchte ich die ganzen felder schon ausgefüllt haben. Dies funktioniert mit meinem Code schon aber ich denke wenn ich jetzt 100 felder habe dann wird der bisschen zu lang. Kann ich das alles bisschen vereinfachen?

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
 private void btnBeispiel_Click(object sender, EventArgs e)
        {
            //********************
            //Bei ausführen dieses Buttons werden alle Felder mit einem wert eingetragen
            //********************
            // Wiederstandswerte 1
            chBWied1.Checked = true;
            textBoxStrom1.Text = "139,1";
            textBoxSpann1.Text = "14";

            // Wiederstandswerte 2
            chBWied2.Checked = true;
            textBoxStrom2.Text = "139,1";
            textBoxSpann2.Text = "14";

            // Wiederstandswerte 3
            chBWied3.Checked = true;
            textBoxStrom3.Text = "139,1";
            textBoxSpann3.Text = "14";

            // Wiederstandswerte 4
            chBWied4.Checked = true;
            textBoxStrom4.Text = "139,1";
            textBoxSpann4.Text = "14";

            // Wiederstandswerte 5
            chBWied5.Checked = true;
            textBoxStrom5.Text = "139,1";
            textBoxSpann5.Text = "14";

            // Wiederstandswerte 6
            chBWied6.Checked = true;
            textBoxStrom6.Text = "139,1";
            textBoxSpann6.Text = "14";

            // Wiederstandswerte 7
            chBWied7.Checked = true;
            textBoxStrom7.Text = "139,1";
            textBoxSpann7.Text = "14";

            // Wiederstandswerte 8
            chBWied8.Checked = true;
            textBoxStrom8.Text = "139,1";
            textBoxSpann8.Text = "14";

            // Wiederstandswerte 9
            chBWied9.Checked = true;
            textBoxStrom9.Text = "139,1";
            textBoxSpann9.Text = "14";

            // Wiederstandswerte 10
            chBWied10.Checked = true;
            textBoxStrom10.Text = "139,1";
            textBoxSpann10.Text = "14";
            
        }
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 13:48 
Hallo Johnny,

es geht über eine Schleife, ist aber nicht ganz unproblematisch. Voraussetzung ist, dass die Namen alle in dieser Form falsch gebaut sind und innerhalb desselben Controls (Panel, Groupbox o.ä.) sitzen und dort keine anders gearteten Controls (Button usw.) untergebracht sind. Wenn eine dieser Voraussetzungen nicht gilt, geht es ähnlich, aber es wird immer komplizierter.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
foreach(Control ctrl in myPanel.Controls)
{
   if( ctrl is CheckBox)
      (ctrl as CheckBox).Checked = true;
   else if (ctrl is TextBox)
   {  TextBox box = ctrl as TextBox.
      if( box.Name.StartsWith("textBoxStrom")
         box.Text = "139,1";
      // usw.
   }
}

Ein UserControl mit zwei TextBoxen und einer CheckBox und einer Reset-Methode würde das stark vereinfachen.

Gruß Jürgen

PS. Du solltest auch über deine Namen nachdenken, siehe .NET Richtlinien für Namen oder als Kurzfassung bei Wikibooks.
derjonny Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 15.04.10 13:56 
ja da hast du vollkommen recht aber ich Mache ja eine projektarbeit und da ist das nicht weiter schlimm denke ich.:D
Bin ja kein anwendungsentwickler obwohl ich sagen muss langsam macht mir das auch spaß :D

also die werte die übergeben werden sind aber nicht alles die gleichen hatte die erstmla nur kopiert.:D
ich hatte als erstes an ein ARRAY gedacht. aber weis nicht ob das so auch klappt..:D

kannst mir deine methgode vieleicht erleutern?
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 15.04.10 14:02 
Hallo,

ich denke dir geht es rein um die Darstellung sowie Verarbeitung der Daten. Deshalb würde ich dir eine Datenstruktur (Klasse) vorschlagen die gewünschten Werte als Eigenschaft hat (Strom, Spannung und Checked). Diese Datenstruktur packst du in eine Collection und kannst dann zum Beispiel einem Datagrid oder einem UserControl hinzufügen. Dann bleibst du flexibler. Merke: Immer Daten von Betrachtung trennen.

Und freut mich wenn es dir Spaß macht... ;)

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



BeitragVerfasst: Do 15.04.10 14:29 
phuuuu ????? *grübel* kam leider nicht zum ergebniss. :D verstehe leider nichts so wirklich von dem du mir gesagt hast. kannst mir vieleicht ein beispiel code geben...dann versuche ich das mal?..
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 15.04.10 15:01 
Deine Datenstruktur ..

Klasse Gleichung.cs:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
class Gleichung
{
   public bool Selected { get; set; }
   public double Strom { get; set; }
   public double Spannung { get; set; }
   public double Widerstand { get; set; }

   public Gleichung() { Selected = true; }
   public Gleichung(double strom, double spannung, double widerstand)  {
      Strom = strom;
      Spannung = spannung;
      Widerstand = widerstand;
   }

   public Gleichung(double strom, double spannung)  {
      Strom = strom;
      Spannung = spannung;
      Widerstand = Spannung / Strom;
   }
}

class GleichungCollection : List<Gleichung>
{

}


Verwendung:
ausblenden C#-Quelltext
1:
2:
3:
4:
GleichungCollection gleichungen = new GleichungCollection();
gleichungen.Add(new Gleichung(139.1d, 14d));
gleichungen.Add(new Gleichung(139.1d, 14d));
gleichungen.Add(new Gleichung(139.1d, 14d));


So und diese GleichungCollection gilt es nun anzuzeigen ...

Das kannst du eben in einem DataGrid machen oder du machst eine Textbox und machst eine Combobox wo du dann gleichung 1, 2. 3. etc. auswählst.. oder oder ...