Was ich versuche zu tun ist eine gepunktete rote Unterstreichung zu jeder falschen Schreibweise im Webbrowser-Steuerelement, die ich in meiner Winform-Anwendung verwendet haben, zu markieren.Hervorhebung falscher Rechtschreibung im Webbrowser Steuerelement
Hier ist mein Code-Schnipsel: -
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;
}
Hier Innerhtml ist die Innerhtml des Steuer Web-Browser für die eingegebenen Daten erhalten. Die nächste Methode ist 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)
{
}
}
Das Hauptproblem ist, dass alles funktioniert mit dem obigen Code in Ordnung, aber wenn ich keine Sonderzeichen oder einen Raum in dem Zielwert zu erhalten, der obige Code auch die gleichen, aber ich hervorheben möchte das nicht so hervorheben wie in MS Word. Bitte führe mich durch das oder ist ihr anderer Weg raus.
Vielen Dank im Voraus
danke für die Antwort, aber Regex wird nicht funktionieren, denn wenn Sie auf das innere HTML schauen, konvertiert es jedes öffnende Tag in den Daten, die sowohl Alphabet als auch Zeichen enthalten .. –