Autor Beitrag
schanuggi
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 17.11.09 17:15 
Hallo,
ich bin absoluter Neuling in c# und mir macht etwas zu schaffen:

Kurz mein Augbau:
Ich habe zwei Benutzersteuerelemente und zwei Klassen. Das eine Benutzersteuerelement besitzt eine TextBox und einen Button und das andere Benutzersteuerelement eine ListBox und ebenfalls einen Button.

Die erste Klasse „Liste“ beinhaltet Methoden zur Bearbeitung der Liste. Die zweite Klasse dient zur Vorlage für Objekte, die erzeugt werden. Die Liste soll vom Typ der zweiten Klasse „Daten“ sein, in der es vorerst nur eine Eigenschaft für den Namen gibt.

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 Liste
    {
        private List<Daten> mliste;

        public Liste()
        {
            mliste = new List<Daten>();
        }

        public void Add(Daten p)
        {
            mliste.Add(p);
        }

        public Daten Item(int index)
        {
            return mliste[index];
        }

        public int Length
        {
            get { return mliste.Count; }
        }

    }


Ich will jetzt, dass wenn ich auf den ersten Button des ersten Benutzersteuerelement drücke, dass der Inhalt der TextBox in die Liste aus der Klasse „Liste“ gespeichert wird.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
        private void button1_Click(object sender, EventArgs e)
        {            
            Liste liste = new Liste();
            liste.Add(new Daten(textBox1.Text));
        }

Wenn ich auf den zweiten Button drücke, soll der gesamte Inhalt der Liste ausgegeben werden.
Ich habe immer noch Probleme mit objektorientierten Denken, aber vielleicht versteht jemand, auf was ich hinaus will und kann mir helfen. Dankeschön

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
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: Di 17.11.09 17:38 
Hallo und :welcome:

user profile iconschanuggi hat folgendes geschrieben Zum zitierten Posting springen:
ich bin absoluter Neuling in c# und mir macht etwas zu schaffen:

Mir macht es zu schaffen, deinen Text zu lesen. Bitte formatiere den Code als solchen. Das kannst du auch nachträglich erledigen: Schere-Button, Code-Text markieren, "Bereiche" öffnen, C# auswählen, Plus-Button drücken, Absenden.

user profile iconschanuggi hat folgendes geschrieben Zum zitierten Posting springen:
Ich will jetzt, dass wenn ich auf den ersten Button des ersten Benutzersteuerelement drücke, dass der Inhalt der TextBox in die Liste aus der Klasse „Liste“ gespeichert wird.

Das geht im Prinzip fast so wie von dir vorbereitet:
user profile iconschanuggi hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
private void button1_Click(object sender, EventArgs e)
        {            
            Liste liste = new Liste();
            liste.Add(new Daten(textBox1.Text));
        }

Aber du darfst dort keine neue Liste erzeugen, sondern musst die vorhandene benutzen.

user profile iconschanuggi hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe immer noch Probleme mit objektorientierten Denken,

An dieser Stelle denkst du zu kompliziert. Eine List<T> kennt bereits eine Add-Methode, ebenso IndexOf und Item und vieles andere mehr. Ich kann also überhaupt nicht erkennen, dass du für die Liste eine eigene Klasse machen willst.

user profile iconschanuggi hat folgendes geschrieben Zum zitierten Posting springen:
aber vielleicht versteht jemand, auf was ich hinaus will und kann mir helfen. Dankeschön

Nein, wirklich verstehen kann ich nichts. Aber mit allen anderen Gedanken zusammen schlage ich vor: Erstelle innerhalb des Formulars eine solche Liste und benutze diese für alle Anzeigen.

Wenn du mehr Informationen über die Daten-Struktur gibst, kann vielleicht noch konkreter geantwortet werden.

Gruß Jürgen