你好我有一个富文本框的问题,我试图只删除Strikeout的单词,但是如果我有一个单词出现的是普通字体,那么这个单词也被删除了。我怎样才能删除Strikeout中的单词?
这是我的代码:
text = richTextBox2.Text;
string[] destLine = richTextBox2.Text.Split(WordSeparaterss);
foreach (string str in destLine)
{
int startIndex = 0;
while (startIndex != -1)
{
startIndex = richTextBox2.Find(str, startIndex + 1,
richTextBox2.Text.Length,
RichTextBoxFinds.WholeWord);
if (startIndex != -1)
{
richTextBox2.Select(startIndex, str.Length);
if (richTextBox2.SelectionFont.Strikeout)
{
text = text.Replace(str, string.Empty);
}
}
}
}
这是文本的例子,我在"之间删除文本。 * "
***Deutschlektionen erlauben vertiefende Einblicke für den Aufbau der deutschen Sprache. Satzbau, Präpositionen, Pronomen und viele andere Themen werden kompakt präsentiert und mit einem berühmten Zitat veranschaulicht.
Deutschkurs - Grammatik***
Gramatik und viele zum.
这就是我从我的代码中获得的:
ane wer
Gramatik zum.
我只想得到:Gramatik und viele zum.
答案 0 :(得分:1)
此方法检查当前文本的长度。然后从结束开始逐个字符检查。如果它的样式是Strikeout
则将其删除。请注意,计数从结束开始。这是因为删除一个字母或索引后减少。如果从结束开始计算,索引的更改将仅影响已调查的文本。
this.richTextBox1.SelectAll();
int textLength = this.richTextBox1.SelectedText.Length;
for (int i = textLength; i >= 0; --i)
{
this.richTextBox1.Select(i, 1);
if (this.richTextBox1.SelectionFont.Style == FontStyle.Strikeout)
{
this.richTextBox1.SelectedText = string.Empty;
}
}