I min app så bygger jag in en enkel HTML-editor, för mailutskick. nu kör jag ur huvet så du får rätta namnen själv ;) Hej Roggan och tack. Med bara lite justeringar så blev det perfekt. du ska använda .selectedtext där oxo. Exempel på det som jag tror Roggan menar...: Tack mina vänner. Detta var helt enkelt supebt. Det blev mao kanonbra.Markerad text och markören.
Jag har två problem.
1.Genom att trycka på en knapp så får jag in <BR> eller <P>.
Problemet är att jag skulle vilja få in det där markören är. Nu gör jag så här:
<code>
textBox12.Text = textBox12.Text + "<p>";//ej bra
textBox12.Focus();
</code>
Men då kommer ju <P> in i slutet av stycket, men jag skulle behöva räkna ut hur många tecken som det är ifrån början till var jag står.
Hur bör jag göra här?
2. Via toolbaren så trycker jag på ändra knappar för t ex <B>
<code>
string markeradFil = textBox12.SelectedText;
textBox12.SelectedText=markeradFil.Replace(markeradFil,"<B>" + markeradFil + "</B>");
</code>
Detta fungerar kanon, jag bara markera texten och trycker på knappen så är det ok, men jag skulle vilja att markeringen inte går bort. Hur gör jag det?Sv: Markerad text och markören.
<code>
string markeradFil = textBox12.SelectedText;
int start=textBox12.Selectionstart;
int len=markeradFil.Length;
textBox12.SelectedText=markeradFil.Replace(markeradFil,"<B>" + markeradFil + "</B>");
textBox12.Selectionstart=start;
textBox12.SelectionLenght=len;
</code>
det borde fixa det
//RogerSv: Markerad text och markören.
<code>
int start=textBox12.SelectionStart;
int len=markeradFil.Length;
textBox12.SelectedText=markeradFil.Replace(markeradFil,"<B>" + markeradFil + "</B>");
textBox12.SelectionStart=start+3;
textBox12.SelectionLength=len;
</code>
Då återstår fråga nr 1.
För att göra den lite tydligare, tänk dig att det står en massa text.
massa text massa text massa text massa text
massa text massa text massa text massa text <--- här sätter jag in markören
massa text massa text massa text massa text
Texten är INTE markerad.
När jag använder min kod, så kommer <BR> att läggas till i slutet, men jag ville lägga till den där markören står och blinka.
<code>
textBox12.Text = textBox12.Text + "<HR>";//ej bra
textBox12.Focus();
</code>
Jag måste alltså ta reda på hur många texken det är ifrån början till där markören är.
Hur gör jag det?Sv: Markerad text och markören.
även om du inte hat något som är selectat så är selectionstart den position där markören är. (och selectionlength är 0)
sätter du .selectedtext och inget är markerat så insertas bara den nya texten
//RogerSv: Markerad text och markören.
<code>
int start=textBox12.SelectionStart;
string tmp=textBox12.Text;
string insert="<HR>";
textBox12.Text = tmp.Substring(0,start) + insert+ tmp.Substring(start);
textBox12.SelectionStart=start+insert.Length;
textBox12.Focus();
</code>Sv: Markerad text och markören.