Autor Beitrag
Andre06
Hält's aus hier
Beiträge: 11

Win 7, Win 8
C# (VS 2010, VS 2012)
BeitragVerfasst: Do 17.05.12 19:11 
Hallo alle zusammen :)


Ich habe ein Problem, welches bestimmt einfach zu lösen ist. Jedoch bin ich noch nicht auf die richtige Lösung gestoßen. Per SuFu habe ich noch nichts gefunden, da ich auch nicht so recht wusste, unter welchem Schlagwort ich suchen sollte.

Ich habe ein Programm welches mir Code für eine Messagebox erstellt, um mir Arbeit abzunehemn... leider macht es mir im Moment Arbeit :D
Ich habe eine Mehrzeilige Textbox, in welcher zum Beispiel steht:

"Hallo,
wie
gehts?"

Und dieser Text aus der Mehrzeiligen Textbox soll für die Messagebox in einer Zeile stehen. Also:

ausblenden C#-Quelltext
1:
Messagebox.Show("Hallo," + "\n" + "wie" + "\n" + "gehts?");					


Ich habe mir gedacht, dass es möglicherweise mit der Replace-Funktion funktioniert, jedoch hat es bis jetzt noch nicht geklappt.

Für eventuelle Lösungsansätze oder sogar Codeschnipsel wäre ich sehr dankbar :)

LG Andre06

_________________
Der größte Kampf, ist der Kampf mit sich selbst. Und der größte Sieg, ist der Sieg über sich selbst. Goethe
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 17.05.12 19:36 
Hallo!

Ein einfaches Ersetzen geht:
ausblenden C#-Quelltext
1:
2:
3:
var s = "Hallo," + "\n" + "wie" + "\n" + "gehts?";
s = s.Replace("\n"" ");
MessageBox.Show(s);


Du solltest aber beachten, dass der Zeilenumbruch in Windows "\r\n" ist. Am Besten benutzt Du Environment.NewLine, das enthält immer den korrekten Zeilenumbruch.

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Andre06 Threadstarter
Hält's aus hier
Beiträge: 11

Win 7, Win 8
C# (VS 2010, VS 2012)
BeitragVerfasst: Do 17.05.12 20:04 
Hallo Christian!


Erstmal vielen Dank für die schnelle Antwort! Eigentlich meinte ich es etwas anders, also im Prinzip genau umgekehrt :wink:

In der Textbox steht folgender Text:

"Hallo
wie
gehts?"

Diesen Text will ich zusammen mit dem Titel und anderen Informationen in den MessageBox-Code reinschreiben. Es sollen praktisch aus den echten Zeilenumbrüchen, Anweisungen für Zeilenumbrüche entstehen. Also sollen quasi die Zeilenumbrüche aus dem mehrzeiligen String gelöscht werden und an den Stellen wo sie waren, Soll der String unterbrochen werden und eine Anweisung für einen Zeilenumbruch entstehen. Das soll dann in die Zwischenablage. Also will ich, dass z.b. Enviroment.NewLine als Text, so wie er ist übergeben wird und nicht in den String ein Zeilenumbruch eingefügt werden soll.

D.h.:

"Hallo
wie
gehts?"

wird zu:

"Hallo" + Enviroment.NewLine + "wie" + Enviroment.NewLine + "gehts?"

Dieser String soll also genauso wie er da steht in die Zwischenablage kopiert werden. Und wenn man dann die Zwischenablage irgendwo einfügt, dann soll auch genau das da stehen. Denn da soll ja eine MessageBox-Anweisung draus werden.

MessageBox.Show("Hallo" + Enviroment.NewLine + "wie" + Enviroment.NewLine + "gehts?");

Diese MessageBox-Anweisung soll in der Zwischenablage stehen, sodass ich sie im C#-Projekt einfügen kann und ich eine fertige Messagebox habe ohne den Code selbst schreiben zu müssen.

Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken. :?

LG Andre06

_________________
Der größte Kampf, ist der Kampf mit sich selbst. Und der größte Sieg, ist der Sieg über sich selbst. Goethe
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 17.05.12 20:12 
Dann würde ich mittels String.Split (und als Trennzeichen den Zeilenumbruch) die Zeilen in ein String-Array aufspalten. Aus dem kannst Du ja dann die Anweisung als String zusammensetzen.


//edit: Ach, Quatsch, einfacher:
ausblenden C#-Quelltext
1:
s = "\""+ s.Replace(Environment.NewLine, "\" + Environmen.NewLine + \"") + "\"";					

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: Andre06
Andre06 Threadstarter
Hält's aus hier
Beiträge: 11

Win 7, Win 8
C# (VS 2010, VS 2012)
BeitragVerfasst: Do 17.05.12 20:21 
Hallo Christian!

Nachdem ich den letzten Beitrag gesendet habe, ist mir ein Geistelblitz gekommen :D

Ich habe es selbst gelöst:

ausblenden C#-Quelltext
1:
2:
string a = "Environment.NewLine";
Text = TxtText.Text.Replace(Environment.NewLine, char.ConvertFromUtf32(34) + " + " + a + " + " + char.ConvertFromUtf32(34));


Ich habe eine String-Variable deklariert und sie mit "Environment.NewLine" gefüllt. Deshalb wird der Zeilenumbruch nicht ausgeführt sondern dargestellt.

Ohh habe deinen editierten Beitrag gelesen... Ja so habe ich es gemacht, nur habe ich anstatt "\"" und \"" es mit char.ConvertFromUtf32(34) gemacht, weil ich es so übersichtlicher finde als mit der Lösung von C# mit diesem Backslash. Da finde ich die Lösung bei VB.Net eleganter (dreifache Anführungsstriche ;) ). Ob es nun eleganter ist, es wie du zu machen weis ich nicht, aber mir persönlich gefällt es so besser :D

Trotzdem vielen Dank für deine Antworten

LG Andre06

_________________
Der größte Kampf, ist der Kampf mit sich selbst. Und der größte Sieg, ist der Sieg über sich selbst. Goethe
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 18.05.12 00:30 
Du merkst dir also lieber eine Magic Number wie 34 anstatt einen einzelnen zusätzlichen \ schreiben zu müssen :gruebel: ...?

_________________
>λ=
Andre06 Threadstarter
Hält's aus hier
Beiträge: 11

Win 7, Win 8
C# (VS 2010, VS 2012)
BeitragVerfasst: Fr 18.05.12 12:11 
Hallo Kha!

Okay jetzt wo du es so sagst, hört es sich wirklich dämlich an sich eine "Magic Number" wie 34 merken zu müssen. Ich werde es ab jetzt mit einem \ machen. Danke für den Tipp ;)

LG Andre06

_________________
Der größte Kampf, ist der Kampf mit sich selbst. Und der größte Sieg, ist der Sieg über sich selbst. Goethe