/// ------------------------------------------------------------------------------------ /// <summary> /// Build the PaWordListGrid for searching. /// </summary> /// ------------------------------------------------------------------------------------ private void Initialize(string eticWrds, string cvWrds, string glossWrds) { m_recCache = _prj.RecordCache; m_cache = new WordListCache(); AddWords(eticWrds, cvWrds, glossWrds); // Create grid m_grid = new PaWordListGrid(m_cache, GetType(), false); // Make all the grid's rows & columns visible and thus searchable for (int row = 0; row < m_grid.Rows.Count; row++) { m_grid.Rows[row].Visible = true; for (int col = 0; col < m_grid.Columns.Count; col++) { m_grid.Columns[col].Visible = true; } } // Get rid of columns we don't care about for the tests. for (int i = m_grid.ColumnCount - 1; i >= 0; i--) { if (!"Phonetic CVPattern Gloss".Contains(m_grid.Columns[i].Name)) { m_grid.Columns.Remove(m_grid.Columns[i]); } } // Set the CVPattern & Gloss column Display Indexes to the correct order // based on the columnsToSearch below. m_grid.Columns["Phonetic"].DisplayIndex = 0; m_grid.Columns["CVPattern"].DisplayIndex = 1; m_grid.Columns["Gloss"].DisplayIndex = 2; SetField(typeof(FindInfo), "s_reverseFind", false); FindInfo.Grid = m_grid; // Add columns to search var columnsToSearch = new List <FindDlgColItem>(); columnsToSearch.Add(new FindDlgColItem(m_grid.Columns["Phonetic"].Index, 0, "Phonetic", "Phonetic")); columnsToSearch.Add(new FindDlgColItem(m_grid.Columns["CVPattern"].Index, 1, "CV Pattern", "CVPattern")); columnsToSearch.Add(new FindDlgColItem(m_grid.Columns["Gloss"].Index, 2, "Gloss", "Gloss")); FindInfo.ColumnsToSearch = columnsToSearch.ToArray(); m_findDlg = new FindDlg(m_grid); ResetStartCell(); }
public bool Find(FindData Data) { FindDlg Dlg = new FindDlg(); //If text is selected on a single line, then use that for the new Find text. string strOriginalFindText = Data.Text; string strSelectedText; if (GetSingleLineSelectedText(out strSelectedText)) { Data.Text = strSelectedText; } if (Dlg.Execute(this, Data)) { if (Data.SearchUp) return FindPrevious(Data); else return FindNext(Data); } else { //Reset the Find text if the user cancelled. Data.Text = strOriginalFindText; } return false; }