Exemplo n.º 1
0
        private void _formFind_OnFormClose(object sender, EventArgs e)
        {
            if (_formFind == null)
            {
                return;
            }
            _formFind.OnSearch    -= _formFind_OnSearch;
            _formFind.OnFormClose -= _formFind_OnFormClose;

            _formFind        = null;
            _tabSearchEngine = null;
        }
Exemplo n.º 2
0
        private void _formFind_OnSearch(object sender, TextSearchEventArgs eventArgs)
        {
            if (_tabSearchEngine == null)
            {
                _tabSearchEngine = new TabSearchEngine(_tabPageDataCollection);
            }

            try
            {
                var searchProperties = new TextSearchProperties
                {
                    CaseSensitive   = eventArgs.SearchProperties.CaseSensitive,
                    LoopSearch      = eventArgs.SearchProperties.LoopSearch,
                    SearchAllTabs   = eventArgs.SearchProperties.SearchAllTabs,
                    SearchDirection = eventArgs.SearchProperties.SearchDirection,
                    SearchText      = eventArgs.SearchProperties.SearchText
                };

                TextSearchResult searchResult = _tabSearchEngine.GetTextSearchResult(searchProperties);

                if (searchResult.SearchTextFound)
                {
                    _tabSearchEngine.SelectionSetByCode = true;
                    if (searchResult.TabIndex != _tabPageDataCollection.ActiveTabIndex && searchProperties.SearchAllTabs)
                    {
                        _tabPageDataCollection.ActiveTabIndex = searchResult.TabIndex;
                        tabControlNotepad.SelectedIndex       = searchResult.TabIndex;
                    }

                    Focus();
                    RichTextBox textBox = GetRichTextBoxInActiveTab();
                    textBox.SelectionStart  = searchResult.StartPos;
                    textBox.SelectionLength = searchResult.Length;
                    textBox.Focus();
                    _tabSearchEngine.SelectionSetByCode = false;
                }
                else
                {
                    MessageBox.Show(Resources.FormMain__Search_string_not_found, Resources.FormMain__Not_found, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    RichTextBox textBox = GetRichTextBoxInActiveTab();
                    _tabSearchEngine.ResetSearchState(_tabPageDataCollection.ActiveTabIndex, textBox.SelectionStart, textBox.SelectionLength);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Tab Text search function encountered an exception.");
                Log.Error(ex, "Unhandled exception when calling _formFind_OnSearch()");
                MessageBox.Show(ex.Message, Resources.FormMain__ErrorText, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }