Entwickler-Ecke

WinForms - Einen Output generieren


validas - Mi 28.09.11 15:32
Titel: Einen Output generieren
hallo community..

Ich habe ein blödes Problem "kopfrauch"..

Ich möchte gerne einen Output generieren. Das möchte ich über eine RichTextBox bewerkstelligen. Nach einem gemachten Schritt soll dann dort geschrieben werden, was getan wurde. Ich habe schon einiges erfolglos versucht. ich kann die RichTextBox ja nicht aus einer anderen Klasse ansteuern... also habe ich in Form1.Desinger.cs die richboxvariable publiziert (ja ich weiss, ist nicht schlau...)

Mein Versuch:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
        //-------------------------------------------------------------------------------------------------------------
        public void SplitSWNumber()
        //-------------------------------------------------------------------------------------------------------------
        // Splittet anhand des Quellpfads die Softwarenummer in 3 Teile, 
        // und fügt diese zusammen.
        //-------------------------------------------------------------------------------------------------------------
        {
            Form1 gui = new Form1();
            string[] arDirectories = szPathDirectory.Split(new char[] { '\\' });
            string[] arNumberIndex = arDirectories[4].Split(new char[] { '.' });
            SWNumberPart1 = arNumberIndex[0].Substring(04);
            SWNumberPart2 = arNumberIndex[0].Substring(44); 
            SWNumberUncut = SWNumberPart1 + SWNumberPart2 + "." + arNumberIndex[1];
            gui.richTextBox1.Text = gui.richTextBox1.Text + "Die Softwarenummer wurde anhand des Quellpfades ermittelt. \r\n";
            gui.richTextBox1.Text = gui.richTextBox1.Text + "Softwarenummer: " + SWNumberUncut + "\r\n"
        }
        //-------------------------------------------------------------------------------------------------------------


schön und gut, aber funzt net... wenn jemand helfen könnte?

vielleicht weiss auch jemand eine möglichkeit dies zu bewerkstelligen, ohne die richboxvariable publizieren zu müssen... hatte schon mit methoden versucht, doch alle Versuche waren mindestens genau so wertlos... -.-

danke euch jetzt schon!

Moderiert von user profile iconTh69: Quote- durch C#-Tags ersetzt


Th69 - Mi 28.09.11 16:28

Hallo validas,

du erzeugst eine neue Form-Instanz (welche noch nicht einmal angezeigt wird), so daß deine Texte in eine unsichtbare RichTextBox geschrieben werden.

Damit hast du denselben (Anfänger-)Fehler begangen wie in Der Inhalt des Labels wird nicht verändert [http://www.c-sharp-forum.de/viewtopic.php?t=107117]
Dort habe ich auch einen Artikel von mir verlinkt, welcher die Lösung aufzeigt (Stichwort: Referenz übergeben bzw. noch besser Ereignis definieren und aufrufen!).

Und P.S: 'public' Controls sind wirklich böse :mahn: (Stichwort: Datenkapselung)


storestore - Mi 28.09.11 18:32

Datenkapslung: Get und Set: Hab ich einen tollen Link bekommen:
http://de.wikipedia.org/wiki/Sprachelemente_von_C-Sharp#Eigenschaften_.28Schl.C3.BCsselw.C3.B6rter_get.2C_set_und_value.29


validas - Fr 30.09.11 07:36

user profile iconstorestore hat folgendes geschrieben Zum zitierten Posting springen:
Datenkapslung: Get und Set: Hab ich einen tollen Link bekommen:
http://de.wikipedia.org/wiki/Sprachelemente_von_C-Sharp#Eigenschaften_.28Schl.C3.BCsselw.C3.B6rter_get.2C_set_und_value.29


ja ist ja klar, datenkapselung ist das A und O. dessen bin ich mir natürlich bewusst... get und set ist ein leichtes spiel ;-) aber trotzdem danke für deine mühe!

Th69 Vielen Dank, deine Antwort und dein Verlinken hat mir weitergeholfen!

Danke

--> geschlossen!