예제 #1
0
        private void txtFind_TextChanged(object sender, EventArgs e)
        {
            txtFind.BackColor = SystemColors.Window;
            if (txtFind.Text == string.Empty)
            {
                return;
            }
            if (_scintilla == null)
            {
                return;
            }

            int pos = Math.Min(_scintilla.CurrentPosition, _scintilla.AnchorPosition);

            ScintillaNET.FindReplaceDialog.CharacterRange r = _findReplace.Find(pos, _scintilla.TextLength, txtFind.Text, _findReplace.Window.GetSearchFlags());
            if (r.cpMin == r.cpMax)
            {
                r = _findReplace.Find(0, pos, txtFind.Text, _findReplace.Window.GetSearchFlags());
            }

            if (r.cpMin != r.cpMax)
            {
                _scintilla.SetSel(r.cpMin, r.cpMax);
            }
            else
            {
                txtFind.BackColor = Color.Tomato;
            }

            MoveFormAwayFromSelection();
        }
예제 #2
0
        private void findPrevious()
        {
            if (txtFind.Text == string.Empty)
            {
                return;
            }
            if (_scintilla == null)
            {
                return;
            }

            ScintillaNET.FindReplaceDialog.CharacterRange r = _findReplace.FindPrevious(txtFind.Text, true, _findReplace.Window.GetSearchFlags());
            if (r.cpMin != r.cpMax)
            {
                _scintilla.SetSel(r.cpMin, r.cpMax);
            }

            MoveFormAwayFromSelection();
        }