Autor Beitrag
0odarkio0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Sa 25.03.17 19:08 
Hallo,

ich habe folgendes Problem:
Ich habe ein usercontrol "Zettel" und eine Klasse.cs "Laden"

im user control steht folgender Code:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
 private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
            {
                Liste_[0] = textBox1.Text;
            }
            else
            {
                Liste_[0] = "";
            }
        }

public void texteinfuegen(string text)
        {
            textBox1.Text = "hi";
        }


und in der Klasse "Laden":
ausblenden C#-Quelltext
1:
2:
 Zettel zettel = new Zettel ();
            zettel.texteinfuegen("hi");


wenn ich jetzt "zettel" aufrufe wird das "textBox1_TextChanged" event aufgerufen. Das ist auch gut so weil ich so den Wert in eine Liste speichere. Aber der Text wird nicht in die Textbox rein geschrieben sondern es wird nur das event ausgelöst.

Wie bekomme ich den text in die Textbox?
Kann mir da jemand helfen?

( das ich ein neues usercontrol aufrufe und da der Fehler liegt ist mir klar das habe ich auf vielen Hilfe Seiten gelesen. Aber ich brauche einen kleinen Anstoß in die richtige Richtung bitte =/

Moderiert von user profile iconTh69: Titel (leicht) geändert.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 25.03.17 19:19 
Ist "Laden" die Form auf dem dein UserControl angezeigt wird?

Wenn ja solltest du da ein Variable für dein UserControl haben, vermutlich "zettel1" benannt, die solltest du auch benutzen anstatt ein weiteres UserControl zu erzeugen.
Wenn "Laden" nicht dein Form ist hast du ein architektonisches Problem und du solltest uns mehr Code, zum Beispiel deine Form die das UserControl benutzt und die "Laden" Klasse, zeigen dann haben wir eine Chance dich richtig zu lenken.
0odarkio0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Sa 25.03.17 20:03 
"Laden" ist eine Klasse(Laden.cs)
"Zettel" ist mein usercontrol welches in Form1 hinzugefügt wird.

ich möchte Werte in der Klasse "Laden" aus einer Textdatei lesen und dann den Text aus der Datei in meinem usercontrol("Zettel") in die textboxen schreiben.
Die Klasse "Laden.DateiWerteAuslesen" rufe ich in der form1 auf.

in der Klasse(Laden.cs) steht folgendes:
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:
        

public void DateiWerteAuslesen(string Name)
        {
            string DateiPfad = System.Windows.Forms.Application.StartupPath + "\\Werte\\" + Name;
            DateiExistiert(DateiPfad, Name);
            FileStream fs = new FileStream(DateiPfad,FileMode.Open);
            StreamReader sr = new StreamReader(fs);

            string line;
            int anzahl = 0;
            while ((line = sr.ReadLine()) != null)
            {
                if (line.IndexOf("=") != -1)
                {
                    switch (anzahl)
                    {
                        case 0:

                               //[color=red] Hier soll dann z.B. der text von Zeile eins in textbox1.Text im usercontrol("Zettel") geschrieben werden.[/color]

                            break;
                        case 1:
                               //[color=red] Hier soll dann z.B. der text von Zeile zwei in textbox2.Text im usercontrol("Zettel") geschrieben werden.[/color]

                            break;
                        case 2:
                            break;
                        case 3:
                            break;
                        case 4:
                            break;
                   }

                }
            }
            sr.Close();
            fs.Close();
        }
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 26.03.17 01:20 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 26.03.17 09:23 
Hallo 0odarkio0,

bitte Cross-Posts immer angeben: myCSharp.de - Eine Textbox eines usercontrols von einer Klasse aus beschreiben.

Kommst du mit meinem Artikel nicht klar?

Du benötigst eine Referenz auf das in der Form angezeigte UserControl, nicht ein neues UserControl erzeugen, also z.B. als Parameter übergeben:
ausblenden C#-Quelltext
1:
public void DateiWerteAuslesen(string Name, Zettel zettel)					

Wie Ralf schon geschrieben hat (und ich in meinem Artikel), ist dies jedoch nicht zu empfehlen, denn eine eigenständige Klasse sollte nicht direkt auf Form-Elemente zugreifen.
Besser wäre es daher, wenn deine Laden-Klasse eine Datenstruktur zurückgibt, welche dann von der Form-Klasse aus diese Werte an das UserControl weitergibt.