Entwickler-Ecke
WinForms - Zeile aus TextBox löschen
MiChri - Di 27.09.05 17:20
Titel: Zeile aus TextBox löschen
Hallo
Ich suche eine möglichkeit aus einer (Multiline) TextBox eine Zeile (per Index) zu löschen. Mir ist klar, dass ich mich "\r\n" zählend durch den String hangeln kann, aber geht das nicht bequemer und schneller, wie bei Delphi über die Lines Propertie?
Vielen Dank schonmal
Gruß
Christian
Christian S. - Di 27.09.05 17:30
Hallo!
Du kannst mittels der Eigenschaft Lines auf die einzelnen Zeilen zugreifen.
Grüße
Christian
MiChri - Di 27.09.05 17:36
Danke erstmal
Aber... wie kann ich darüber eine Zeile löschen??? (noch nicht einmal das ändern funktioniert einwandfrei)
Christian S. - Di 27.09.05 17:44
MiChri hat folgendes geschrieben: |
wie kann ich darüber eine Zeile löschen??? |
Die Eigenschaft
lines ist ein einfaches
String[]-Array. In dem Hilfetext zur Eigenschaft gibt es ein Beispiel, wie man damit arbeitet. Sieht in Delphi so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var tmpArr : Array of String; i: Integer; begin tmpArr := textbox1.lines; for i:=1 to High(tmpArr) do tmpArr[i-1] := tmpArr[i]; SetLength(tmpArr, Length(tmpArr)-1);
textbox1.Lines := tmpArr;end; |
Damit sollte auch das Ändern von Einträgen problemlos gehen. Etwas umständlich, aber laut Hilfe stimmt das so. :gruebel:
Grüße
Christian
MiChri - Di 27.09.05 17:56
Mhhhmmm :roll:
Scheint ja furchtbar komfortabel zu sein... Da ich mit VC# programmiere hatte ich deinen Hilfstext nicht und hatte auf etwas eleganteres gehofft.
Ausserdem kam bei mir folgendes lustiges zustande:
C#-Quelltext
1: 2:
| m_Text.Lines[lineNumber]="ASimpleString"; bool test=(m_Text.Lines[lineNumber]=="ASimpleString"); |
Na rate mal welchen Wert
test danach hatte... ja natürlich
false
Gruß Christian
Christian S. - Di 27.09.05 17:59
MiChri hat folgendes geschrieben: |
Da ich mit VC# programmiere hatte ich deinen Hilfstext nicht und hatte auf etwas eleganteres gehofft. |
Die Hilfe ist beim .NET Framework SDK dabei, solltest Du also auch haben.
MiChri hat folgendes geschrieben: |
Ausserdem kam bei mir folgendes lustiges zustande:
C#-Quelltext 1: 2:
| m_Text.Lines[lineNumber]="ASimpleString"; bool test=(m_Text.Lines[lineNumber]=="ASimpleString"); | |
Geht jetzt aber, wenn Du Dir die lines in ein Array holst, oder?
Und dass das nicht sehr komfortabel ist, da muss ich Dir Recht geben.
MiChri - Di 27.09.05 18:36
Christian S. hat folgendes geschrieben: |
Die Hilfe ist beim .NET Framework SDK dabei, solltest Du also auch haben.
|
Leider nicht. Die hilfe zur Line Propertie sieht bei mir so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| public void ViewMyTextBoxContents() { string[] tempArray = new string [textBox1.Lines.Length]; tempArray = textBox1.Lines; for(int counter=0; counter <= tempArray.Length;counter++) { System.Diagnostics.Debug.WriteLine(tempArray[counter]); } } |
Christian S. hat folgendes geschrieben: |
Geht jetzt aber, wenn Du Dir die lines in ein Array holst, oder?
|
Wie meinst du das jetzt genau? Auf einer Kopie arbeiten? Das habe ich noch nicht probiert.
Ich habe jetzt einen StringReader mit dem Text der TextBox gefüttert und alles in einen Zweiten String gepackt.
Das kommt dem "Parser Charakter" meiner Funktion sowieso näher.
Danke nochmal für die Mühe und einen Schönen Feierabend :D
Gruß
Christian
Christian S. - Di 27.09.05 18:39
Den Hilfetext meine ich. Der Rest war ja dann ansich nur noch ein kleiner Schritt. Zumindest das Löschen mittels des tempArrays geht bei mir. Das Ändern habe ich nicht ausprobiert, weil das Löschen ja das Ändern beinhaltet.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!