Fragen zu C#

azok

Grünschnabel
Hallo!

Ich bin Anfänger in C#, der sich mittlerweile bald auf Fortgeschrittenem-Status befindet und habe dementsprechend ein paar Fragen, zu denen ich momentan noch keine Antwort weiß.:

Und zwar, wie ich einen markierten Text mit beliebigen zeichenfolgen umklammern kann...

Code:
private void menuh1_Click(object sender, EventArgs e)
{
if (txtHauptfeld.SelectionLength > 0)
this.txtHauptfeld.Text = "<h1>" + txtHauptfeld.SelectedText + "</h1>"; 
else
this.txtHauptfeld.Text = txtHauptfeld.Text + "<h1> </h1>"; 
}

so funktioniert es irgendwie nicht ganz... bzw. wie kann ich im else zweig den cursor mitten zwischen "<h1>" und "</h1>" stellen?

das nächste problem wäre folgendes:
wie kann ich die aktuelle position des Cursors in einem Textfeld ausgeben? z.b. Zeile: 1, Spalte: 2;? (ich schaffs bisher nur mit der position der Maus)

nächstes:
wie schaffe ich es für ein textfeld eine 'einfache' zeilennummerierung zu erstellen? also dass neben so eine leiste mit den zeilennummern ist?

und das letzte:
wie ist am einfachsten ein syntaxhighlighting zu realisieren?

sorry, dass ich hier soviele Fragen auf einmal stelle, aber ich finde leider nirgends im Netz antworten dazu...

mlg
azok
 
Hi!

  • Das mit dem Umklammern sollte so funktionieren ( nicht getestet ).
    Und beschäfige Dich mal mit dem Thema Boxing.
Code:
privatevoid menuh1_Click( object sender, EventArgs e ){
	if ( txtHauptfeld.SelectionLength > 0 )
		this.txtHauptfeld.SelectedText =
			string.Format("<h1>{0}</h1>", txtHauptfeld.SelectedText) ;
	else{
		int len = this.txtHauptfeld.Text.Length;
		this.txtHauptfeld.Text += "<h1></h1>";
		this.txtHauptfeld.SelectionStart = len + 4;
		this.txtHauptfeld.SelectionEnd = 0;
	}
}
  • Die Zeilen und Zeichen würde ich mitzählen ( das kannst Du gleich als erstes machen wenn was in das Textfeld einegegeben wird ). Bei Backspace z.B. würd ich dekrementieren, CursorTasten überwachen ect.
  • Zeilennummern hmm... nee keine Ahnung. Das würde mich auch mal interessieren bevor ich mir das ausdenke.
  • Mit Syntaxhightlighting hab ich mich noch nicht beschäftigt. Denke mal das es nur geringfügig schwieriger sein sollte als bestimmte Textstellen mit nem H1-Tag zu versehen.
    Die RichTextBox sollte es ermöglichen. Wenn man die Schriftfarbe verändert, sollte man dementsprechend andersfarbigen Text wieder hineinschreiben können. Dann brauchst Du noch sowas wie eine Datenbank für die Schlüsselwörter (XML, SQL). Könntest ja auch erstmal Enum's verwenden. Wie gesagt ich hab's noch nicht umgesetzt.

    ***Hab grad den Link von Rando bemerkt. Ist Doch ziemlich leicht.
MfG cosmo
 
Zuletzt bearbeitet:
hallo!

@Rando: Danke für deinen link. leider bin ich noch anfänger in c# und deshalb kann ich damit nicht so viel anfangen... - kennst du oder sonst jemand noch einen link, wo auch syntaxhighlighting beschrieben ist, wo aber die zu highlighten worte etc. in einem externen file (z.b. xml) gespeichert sind...

@cosmochaosmaker: Danke auch für deine antworten.

mlg
azok
 
  1. Haben wir eine Netiquette (Abs.12)
  2. Hat Rando einen Link gepostet wo es beschrieben ist.
  3. XML-Tutoials gibt es hier mehr als genug. -->Suchfunktion!
  4. Würd ich Dir empfehlen mal ein paar Anfänger-Tutorials durchzuarbeiten.
  5. Norbert kann Dir da sicher helfen :)

MfG cosmo
 
Zuletzt bearbeitet:
Zurück