2010-10-14 78 views

回答

4

的新途径

void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Back) 
     { 
      TextPointer start = richTextBox1.CaretPosition; 
      string text1 = start.GetTextInRun(LogicalDirection.Backward); 
      TextPointer end = start.GetNextContextPosition(LogicalDirection.Backward); 
      string text2 = end.GetTextInRun(LogicalDirection.Backward); 

      richTextBox1.Selection.Select(start, end); 
      richTextBox1.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Black); 
      richTextBox1.Selection.Select(start, start); 
      //e.Handled = true; 
     } 
    } 
+0

这是用于wpf – 2011-04-21 08:22:28

1

检查了这一点 http://www.dotnetfunda.com/articles/article842-spellchecker-in-wpf-.aspx

权在这里似乎讨论一些选项可以帮助您的方案: “在这里我们使用SpellingError类来获取Suggessions CaretIndex返回,其中克拉的索引文本框。GetSpellingError可以返回SpellingError对象仅在当前位置克拉有错误的单词也拼写检查对TextBox启用。“

1

旧的方式

private void richTextBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Back) 
     { 
      var z = this.richTextBox1.SelectionStart; 
      var r = richTextBox1.Find(" ", 0, z, RichTextBoxFinds.None | RichTextBoxFinds.Reverse); 
      var q = this.richTextBox1.Text.Substring(r + 1, z - r - 1); 
      switch (q) 
      { 
       case "test": 
        this.richTextBox1.SelectionStart = r + 1; 
        this.richTextBox1.SelectionLength = z - r - 1; 
        this.richTextBox1.SelectionColor = Color.Black; 
        this.richTextBox1.SelectionStart += this.richTextBox1.SelectionLength; 
        this.richTextBox1.SelectionLength = 0; 
        //e.Handled = true; 
        break; 
       default: 
        this.richTextBox1.SelectionStart = z; 
        break; 
      } 
     } 
    } 
+0

'z'? 'r'? 'q'? :O – superjos 2016-06-05 07:59:07

1

以供将来参考:

void richTextBox1_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    var rtb = (RichTextBox)sender; 
    var tr = rtb.GetSpellingErrorRange(rtb.CaretPosition); 
    if(tr != null) 
    { 
     string spellingerror = tr.Text; 
     //Do whatever 
    } 
} 
+1

'tr'?也许给变量适当的全名可能有助于其他人到这里寻找答案 – superjos 2016-06-05 08:00:22