private void _formFind_OnFormClose(object sender, EventArgs e) { if (_formFind == null) { return; } _formFind.OnSearch -= _formFind_OnSearch; _formFind.OnFormClose -= _formFind_OnFormClose; _formFind = null; _tabSearchEngine = null; }
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); } }