Hej, Din kod fungerar alldeles utmärkt här... Oj oj oj,Problem RichTextbox.select(x,y) och Undo()
Jag har en RichTextbox med lite text.
Jag ska stryka över text som markeras eller det ord som användaren klickar på (enkelklick), jag har lyckats lösa detta (om det är optimalt vet jag inte... men men, det är inte det som är problemet.)
Jag har en knapp i min applikation som gör richTextBox1.Undo(); när jag bara har if-delen (dvs kommenterar bort else) så fugerar undo-knappen aldeles utmärkt, problemet uppkommer när jag använder richTextBox1.Select(x,y), då verkar det som om undo-historiken töms och endast det som har gjorts med Select(x,y) finns i undo-historiken.
Finns det någon lösning på detta?
Kan man kopiera undo-listan innan man gör select(x,y) och merga den med listan efter select(x,y)
private void richTextBox1_MouseUp(object sender, MouseEventArgs e)
{
if (richTextBox1.SelectedText != "")
{
richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Strikeout);
//richTextBox1.Select(0, 0);
}
else{
string sText = richTextBox1.Text;
int iStart = sText.LastIndexOfAny(s_acSeparators, richTextBox1.GetCharIndexFromPosition(new Point(e.X, e.Y))) + 1;
int iEnd = sText.IndexOfAny(s_acSeparators, richTextBox1.GetCharIndexFromPosition(new Point(e.X, e.Y)));
if (iEnd < 0)
iEnd = sText.Length;
int iEndWord = iEnd - iStart;
if ( iEndWord < 0)
iEndWord = 0;
richTextBox1.Select(iStart, iEndWord);
richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, richTextBox1.SelectionFont.Style ^ FontStyle.Strikeout);
//richTextBox1.Select(0, 0);
}
}
Glömde min char[]
private static char[] s_acSeparators = {' ', '\n'};
Sv: Problem RichTextbox.select(x,y) och Undo()
Både med och utan ".Select(x,y)".Sv:Problem RichTextbox.select(x,y) och Undo()
Efter mycket felletande har jag hittat problemet :)
Jag sitter och utvecklar på en 2003 server och den har version Rich Text Edit Control, v3.1 (5.31.23.1224) (riched20.dll) installerad i System32 katalogen.
Jag hittade denna länk http://66.129.67.100/247reference/msgs/57/285839.aspx som säger att detta ska vara fixat i XP sp1 och visst var det så :) jag flyttade över min kod till en burk med XP Pro sp2 och det fungerar bra.
Tack för hjälpen