2012-08-01 38 views
5

我想要做的是在我的winform應用程序中使用的Web瀏覽器控件中存在的每個錯誤拼寫都標上一個虛線的紅色下劃線。在網頁瀏覽器控件中突出顯示錯誤的拼寫問題

這是我的代碼片段: -

public static string CheckSpelling(string InnerHTML) 
    { 
     string Val = ""; 
     try 
     { 
      StringBuilder strBu = new StringBuilder(); 
      strBu.Append(InnerHTML); 
      RemoveStyleAssigned(ref strBu);        
      for (int i = 0; i < strBu.Length; i++) 
      { 
       if (Convert.ToString(strBu[i]).ToLower() == "<") 
       { 
        for (int j = i + 1; j < strBu.Length; j++) 
        {        
         if (Convert.ToString(strBu[j]).ToLower() == ">") 
         { 
          i = j; 
          for (int k = j + 1; k < strBu.Length; k++) 
          { 
           if (Convert.ToString(strBu[k]).ToLower() != " ") 
           { 
            i = k; 
            CheckAndReplace(ref strBu, ref i); 
            break; 
           } 
          } 
          break; 
         } 
        } 
       } 
       else if (Convert.ToString(strBu[i]).ToLower() != " ") 
       { 
        CheckAndReplace(ref strBu, ref i);       
       } 
      } 
      Val = strBu.ToString(); 
     } 
     catch (Exception ex) 
     { 
     } 
     return Val; 
    } 

這裏innerHTML的是輸入的數據所獲得的Web瀏覽器控件的innerHTML。 next方法CheckandReplace

private static void CheckAndReplace(ref StringBuilder strBu, ref int i) 
    {    
     try 
     { 
      string Target = string.Empty; 
      string NewString = "";     
      for (int j = i; j <= strBu.Length; j++) 
      {     
       if (j == strBu.Length || Convert.ToString(strBu[j]).ToLower() == " " || Convert.ToString(strBu[j]).ToLower() == "<") 
       { 
        string Wordtocheck = ReplaceXmlCharacters(Target); 
        if (!IsSpellingCorrect(Wordtocheck)) 
        { 
         NewString = "<u style='text-decoration: none; border-bottom: 1px dotted #FF0000'>" + Target + "</u>";       
         strBu = strBu.Replace(Target, NewString, i, Target.Length);        
         i += NewString.Length - 1; 
        } 
        else 
        { 
         i = j - 1; 
        } 

        break; 
       } 
       else 
        Target += strBu[j]; 
      } 
     } 
     catch (Exception ex) 
     { 
     } 
    } 

的主要問題是,一切工作正常與上面的代碼,但每當我得到任何特殊字符或目標值的任何空間,上面的代碼也突出相同的,但我不要像在MS Word中那樣突出顯示。請引導我通過這個或者是他們的任何其他出路。

在此先感謝

回答

0

您可能要check out Regex。似乎它會幫助你想要完成的事情。

+0

感謝您的回覆,但Regex無法解決問題,因爲如果您查看Inner HTML,它會轉換數據中包含字母和字符的任何開始標記。 – 2012-08-02 12:25:47

相關問題