#c# #find #scrollbar
#c# #Найти #полоса прокрутки
Вопрос:
Я написал код, который находит слово в richtextbox. Теперь я хочу переместить полосу прокрутки в местоположение искомого слова. Пожалуйста, помогите мне!!!
int j,count = 0;
string keyword = txtSearchByWords.Text;
int startPosition = 0; //initializing starting position to search
int endPosition = 0;
int endArticle = rtbWords.Text.Length;
for (j = 0; j < endArticle; j = startPosition)//creating a loop until ending the article
{
if (j == -1) //if the loop goes to end of the article then stop
{
break;
}
startPosition = rtbWords.Find(keyword, startPosition, endArticle, RichTextBoxFinds.WholeWord);
if (startPosition >= 0) //if match the string
{
count ;//conunting the number of occuerence or match the search string
rtbWords.SelectionBackColor = Color.Orange;//coloring the matching string in the article
endPosition = txtSearchByWords.Text.Length;
startPosition = startPosition endPosition;//place the starting position at the next word of previously matching string to continue searching.
}
Комментарии:
1. Это выглядит как просто внутренняя логика. Каков пользовательский интерфейс для этого? Я не уверен, что мы сможем вам помочь, не видя кода пользовательского интерфейса. Не могли бы вы поделиться им, пожалуйста? Это веб-приложение? Приложение WinForms? Приложение UWP?
2. поле с расширенным текстом в winfom csharp
Ответ №1:
используйте ScrollToCaret для прокрутки до местоположения искомого слова в поле форматированного текста
rText.SelectionStart = rtext.Text.Length;//set the start location
rText.ScrollToCaret();