Hi,
ich versuche in einem Projekt das optische Hervorheben von Code in einer Richtextbox nachzubauen. Deshalb wollte ich fragen, ob mir jemand sagen kann, ob es überhaupt möglich ist und wie es funktioniert, bzw. nach was man googlen kann.
Ich habe eine Richtextbox, schreibe meinen Text und kann über den Button dann den markierten Abschnitt in eine Box packen.
Wie hier ...
Danke 😃
Syntax Highlighting heißt das Stichwort, wenn die Hervorhebung über eine Farbe erfolgt.
Ich benutze dazu dieses Projekt :
http://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting
bzw.
https://github.com/PavelTorgashov/FastColoredTextBox
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hi, danke für deine Antwort 😃
Ich bin mir nicht sicher ob es das ist, was ich suche. Mir geht es nicht um das Hervorheben von Syntax. Mir geht es nur um den "Container" der sich in der Richtextbox aufbauen soll. Den Code, den ich markiert habe, soll ich über einen Button dann in einen Container/ eine Box packen können, die sich dann vom geschriebenen Text abhebt.
Du hast gefragt..
ich versuche in einem Projekt das optische Hervorheben von Code in einer Richtextbox nachzubauen.
Was Du mit "Container" meinst ist mir schleierhaft.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hast Du dir mal den Editor hier angesehen? Wenn Du so eine CodeTag hinzufügst, wird der eigentliche Inhalt eben mit diesen versehen.
[CSHARP]Wie hier...[/CSHARP]
Diese Tags muss dein Control entsprechend auswerten und darstellen.
Ich würde aber von BB Code heute abstand nehmen und mir eher Markdown ansehen.
Das ist viel verbreiteter in der Entwicklerwelt und auch deutlich einfacher.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi Garzec,
schau mal in der Rich Text Format (RTF) Specification nach, ob diese so etwas überhaupt anbietet (also einen abgesetzen Container). Ich kenne bei RTF nur Textmarkierungen. Und nicht alles, was in der Spec angegeben ist, wird auch vom RichTextBox-Control unterstützt (z.B. Tables, Pictures, Objects, etc.).
Du kannst ja auch mal mit WordPad testen, was du erreichen möchtest.
Also ich habe mal versucht das Ganze erstmal mit Strichen nachzubauen.
private void btnQuellcode_Click(object sender, EventArgs e)
{
string markierterText = edtTextfeldEintraege.SelectedText;
int linienCountFensterNormal = 87;
int linienCountFensterMaximiert = 248;
string strichKette = "";
if (WindowState == FormWindowState.Normal)
{
for (int i = 0; i < linienCountFensterNormal; i++)
{
strichKette += "-";
}
}
else if (WindowState == FormWindowState.Maximized)
{
for (int i = 0; i < linienCountFensterMaximiert; i++)
{
strichKette += "-";
}
}
strichKette += Environment.NewLine;
string neuerString = "\r\n\r\n" + markierterText.Insert(0,strichKette) + Environment.NewLine + strichKette + "\r\n\r\n";
edtTextfeldEintraege.SelectedText = neuerString;
}
Da die Striche aber langweilig aussehen fragte ich nach anderen Möglichkeiten 😛
Also nach einigem Testen funktioniert es glaube ich nur im Web oder mit grafischer Trickserei ... 😕
Hallo,
Du könntest statt einer RTB ein WebBrowser-Control verwenden. Damit lässt sich das recht leicht erledingen. Die Boxen wären dann normale <div>...</div>
.
Schau mal in Textfeld mit Formatierung und klickbarem Text, ist nicht genau Dein Anwendungsfall, aber Du kannst ähnlich vorgehen.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca