Forum: PC-Programmierung Problem beim Einlesen von Textboxen


von Daniel B. (yzdani)


Angehängte Dateien:

Lesenswert?

Seas,

versuch gerade in C# mehrere Textboxen mit nicht all zu viel Code 
einzulese.

Aus irgend einem Grund schreibt er mir vor den Text der Textbox 
"System.Windows.Forms.TextBox, Text:"

Wie bekomme ich das weg?

Code hab ich angehängt.

Danke im Voraus!

Gruss

Daniel

von Borislav B. (boris_b)


Lesenswert?

ist das dein Ernst? ^^
1
text = Convert.ToString(found[0]);
2
file.WriteLine(text + Environment.NewLine);

Was steht wohl in text?

von Prog R. (daniel_v)


Lesenswert?

found[0].Text könnte das Gewünschte lieferen....
Bin jetzt nicht ganz sicher, aber mit myTextBox.Text bekommst du den 
Inhalt als String....

von Halbfettbuttergegner (Gast)


Lesenswert?

Wie schon erwähnt, das Ergebnis ist ein Array.
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.find%28v=vs.110%29.aspx

WriteLine und +Environment.NewLine ist doppelt gemoppelt.

1
var lines = Enumerable.Range(1, 6).Select(i => Controls.Find("textbox" + i, true)[0].Text);

Oder etwas sicherer:

1
var lines = Enumerable.Range(1, 6).Select(i => Controls.Find("textbox" + i, true))
2
                      .Where(c => c.Length > 0).Select(c => c[0].Text).ToList();
3
4
Debug.Assert(lines.Count == 6, "Invalid number of TextBox controls.");
5
6
using (StreamWriter file = new StreamWriter(@"C:\Users\dani\Desktop\test\test.txt", true))
7
{
8
  lines.ForEach(file.WriteLine);
9
}

Natürlich Variablen/Konstanten einsetzen, nicht 1, 6, "textbox" und 
@"C:\...".
Ich würde auch als 2. Parameter false übergeben und nur im unmittelbaren 
Parent-Control suchen, falls möglich.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.