FindAll Property (original) (raw)

Summary

Indicates whether all matches should be returned between the provided bounds instead of just the first.

Syntax

public bool FindAll { get; set; } 

public: property bool FindAll { bool get() void set(bool value) }

Property Value

true to always search through the entire bounds and return all matches, or false to stop searching after finding the first match. The default value is true.

Example

using Leadtools; using Leadtools.Controls; using Leadtools.Document; using Leadtools.Document.Viewer; using Leadtools.Codecs; using Leadtools.Caching; using Leadtools.Annotations.Engine; using Leadtools.Ocr; var text = _documentViewer.Text; // Make sure we get the page text if necessary text.AutoGetText = true; // We will find all matches of "LEAD", ignoring the case var options = new DocumentViewerFindText(); // The text options.Text = "LEAD"; // Ignore case options.MatchCase = false; // Any word that contains the phrase options.WholeWordsOnly = false; // Find all results in the bounds, not just the first options.FindAll = true; // Highlight the results in the View options.RenderResults = true; // Optionally change the highlight color //DocumentViewerText.FoundTextBrush = new SolidBrush(Color.FromArgb(52, Color.Brown)); // Set the bounds bool isFindingNext = true; // We set the bounds as the whole document, but below we can specify to start wherever text is selected // or at the current page var topOfFirstPage = DocumentViewerTextPosition.CreateBeginOfPage(1); var bottomOfLastPage = DocumentViewerTextPosition.CreateEndOfPage(_documentViewer.PageCount); if (isFindingNext) { // Make the beginning bound "higher up" the page so we search "down" the page. options.BeginPosition = topOfFirstPage; options.EndPosition = bottomOfLastPage; } else { // Make the beginning bound "lower down" the page so we search "up" the page. options.BeginPosition = bottomOfLastPage; options.EndPosition = topOfFirstPage; } // Select the first result in the View (automatically scrolls View also) options.SelectFirstResult = true; if (text.HasAnySelectedText) { // Setting this value to AfterSelection allows us to search forward from the selection, so multiple // uses of this same options object will cycle us through all the matches! // (If no selected text actually exists, search will default to beginPosition.) options.Start = DocumentViewerFindTextStart.AfterSelection; } else { // We could start at the begin position, but it makes more UI sense to start from the user's current page. // Search will loop back around to the begin position - this just changes the starting point and order of results. options.Start = DocumentViewerFindTextStart.ManualPosition; if (isFindingNext) options.ManualStartPosition = DocumentViewerTextPosition.CreateBeginOfPage(_documentViewer.CurrentPageNumber); else options.ManualStartPosition = DocumentViewerTextPosition.CreateEndOfPage(_documentViewer.CurrentPageNumber); } // If we were just looking for the first match, we could use "Loop" to loop around // if we found nothing between the start position and the end bound. //options.Loop = true; // You will likely want to clear the previous highlighted results // on the screen so only our new results will show. text.ClearRenderedFoundText(); // Search var results = text.Find(options); int resultsCount = results != null ? results.Count : 0; if (resultsCount > 0) Console.WriteLine(string.Format("Found {0} results", resultsCount)); else Console.WriteLine("No matches found.");