I am using UltraFormattedTextEditor that internally stores the formats in HTML.
the normal text editor has function like Select(start index, length) but there is no similar function in Formatted text editor. Hence, I am using following.
txtEditor.EditInfo.SelectionStart = index;
txtEditor.EditInfo.SelectionLength = find.Length;
Actually I am implementing find and replace feature. So when user finds a word, it needs to highlight (select) that word. So, I should be finding withing .Text property and not .Value property. Because .value property may find something within the html formatting text as well. So, once we find a word within .Text property and use its index/length for the EditInfo - it does not display it correctly (may be because the EditInfo is trying to select within the Value property).
So, I am not clear as to what should be the right approach here.
I'm not sure of your exact question here, but it looks like you're on the right track with your thought process. Below I pasted a snippet of code that might help with your creation of a Search/Replace dialog for the editor.
//Find and select the string value string findme = "brown"; int startindex = 0; formattedTextEditor.Value = "The quick <u>brown fox</u> jumped over the lazy dogs."; formattedTextEditor.EditInfo.SelectionStart = formattedTextEditor.Text.IndexOf(findme, startindex); formattedTextEditor.EditInfo.SelectionLength = findme.Length; //Replace the selected string with the string "red" string replacement = "red"; formattedTextEditor.EditInfo.Delete(); formattedTextEditor.EditInfo.InsertValue(replacement);
The issue is how the editor looks when selection is made. When we set the SelectionStart and SelectionLength property, the editor shows some different text selected instead of the one we intend to.
E.g. if the text as "god bless america and eveyone else goes nuts" and you intend to select the word 'bless' - the editor shows 'ss ame' as selected (just an example).
When I replace the text it does it correctly, but the the selection display is not correct.