コード例 #1
0
    private int DoSearch(int index)
    {
        if (_searchList.Count == 0)
        {
            return(-1);
        }

        SearchListObject foundObject = SearchNormal(_searchList[index]);

        if (foundObject == null)
        {
            return(-1);
        }

        int foundIndex = foundObject.Id - 1;

        if (foundIndex >= 0)
        {
            foundIndex = index;

            if (foundIndex == _originalSearchIndex && showNoMoreMatchesMessageCheckBox.Checked)
            {
                ShowNoMoreMatchesMessage();
                Reset(_previousSearchIndex);
                foundIndex = _previousSearchIndex;
            }
            else
            {
                FoundMatch(foundObject);
            }
        }

        return(foundIndex);
    }
コード例 #2
0
 private void FireSearchEvent(SearchListObject foundObject)
 {
     if (SearchEvent != null)
     {
         SearchEvent(foundObject);
     }
 }
コード例 #3
0
    private static SearchListObject SearchNormal(SearchListObject searchListObject)
    {
        if (searchListObject.Match)
        {
            return(searchListObject);
        }

        return(null);
    }
コード例 #4
0
    private void FoundMatch(SearchListObject foundObject)
    {
        FireSearchEvent(foundObject);

        _previousSearchIndex = foundObject.Id - 1;

        if (_originalSearchIndex == -1)
        {
            _originalSearchIndex = foundObject.Id - 1;
        }

        _currentSearchIndex = foundObject.Id - 1;
    }