webForumDet fria alternativet

Sätta in text på bestämd plats i richtextbox

.NET

1 svar · 204 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Vad jag försöker att göra är följande.
I en richtextBox, så laddar jag in en HTML-fil.
Via en class, så vill jag kolla upp om/var body-taggen finns.
Om jag hittar den, så vill jag göra en radbryt och en text skall infogas( inte ersättas).

string kollaM = "<body([^>]?)*>";
Regex repost = new Regex(kollaM,RegexOptions.IgnoreCase|RegexOptions.Compiled);
Match m;
m = repost.Match(rtf.Text);
if(m.Success)
{ // Märket finns
string texten = "\r\n";
texten = texten + "Bara för att kolla" +"\r\n";
texten = texten + "\r\n";
rtf.SelectionStart = m.Index;				
rtf.SelectionLength = texten.Length +2;
rtf.SelectedText = m.Value.ToString() + "\r\n" + texten;

Vad som händer är:
Regex hittar taggen, och gör en ny rad, men skriver över den befintliga texten med en ny rad.

Hur bör jag göra för att få in texten utan att den skriver över någonting???

Medlem sedan mars 20011 880 inlägg
#2

Jag hittade lösningen:

rtf.SelectionStart = m.Index;				
				rtf.SelectionLength = m.Length;
				rtf.SelectedText = m.Value.ToString() + "\r\n" + texten + "\r\n";
252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)