0
我有一個winform應用程序,我需要提供查找和突出顯示用戶輸入文本中所有數字的功能。爲此,我將一個wpf richtextbox添加到表單上的元素主機。點擊一個按鈕,我閱讀文本框中的文本以查找所有數字。問題是僅數字的最後一個實例被突出顯示,而不是所有實例。對於前 - 在文中 - 「訂單是12個百吉餅,地址是13456 Lame st。」只有13456被突出顯示。代碼如下:在wpf richtextbox中查找文本中的所有數字實例
private void btnSave_Click(object sender, EventArgs e)
{
var wpfTextBox = (System.Windows.Controls.RichTextBox)elementHost1.Child;
Regex reg = new Regex("[0-9 -()+]+$");
var start = wpfTextBox.Document.ContentStart;
while (start != null && start.CompareTo(wpfTextBox.Document.ContentEnd) < 0)
{
if (start.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text)
{
var match = reg.Match(start.GetTextInRun(LogicalDirection.Forward));
var textrange = new TextRange(start.GetPositionAtOffset(match.Index, LogicalDirection.Forward), start.GetPositionAtOffset(match.Index + match.Length, LogicalDirection.Backward));
textrange.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Colors.Blue));
}
start = start.GetNextContextPosition(LogicalDirection.Forward);
}
}
謝謝你的時間!
謝謝你指出 - 我在另一個應用程序中使用了相同的正則表達式,它適用於我正在尋找的數字模式,所以我不認爲正則表達式可能是一個問題。 – user6166859