프로그래밍/C#

[C#] TextBox 에 찾기바꾸기 기능 활용

준코딩 2020. 9. 29. 15:48

 ScintillaNET_FindReplaceDialog NuGet 패키지 활용하기

NuGet 패키지 관리에서 ScintillaNET_FindReplaceDialog 패키지를 다운로드해주세요. 이 패키지의 주요 기능은 다음과 같습니다. 또한 이미 구현된 Dialog 를 사용하기 때문에 코드 몇 줄이면 사용이 가능합니다.

 

1. 검색

2. 바꾸기

3. 검색 단어 강조

4. 검색 단어를 포함하는 줄 강조

5. 특정 라인으로 이동

 

 

 코드 적용하기

간단한 인스턴스만 하나 해주시면 바로 사용이 가능합니다.

 

using ScintillaNET_FindReplaceDialog;

// FindReplace Declare
private FindReplace MyFindReplace;

 

 

KeyDown 이벤트를 통해 단축기를 만들 수 있습니다.

 

        private void TextArea_KeyDown(object sender, KeyEventArgs e)
        {

            #region FindReplace
            MyFindReplace.ClearAllHighlights();

            if (e.Control && e.KeyCode == Keys.F)
            {
                MyFindReplace.ShowFind();
                e.SuppressKeyPress = true;
            }
            else if (e.Shift && e.KeyCode == Keys.F3)
            {
                MyFindReplace.Window.FindPrevious();
                e.SuppressKeyPress = true;
            }
            else if (e.KeyCode == Keys.F3)
            {
                MyFindReplace.Window.FindNext();
                e.SuppressKeyPress = true;
            }
            else if (e.Control && e.KeyCode == Keys.H)
            {
                MyFindReplace.ShowReplace();
                e.SuppressKeyPress = true;
            }
            else if (e.Control && e.KeyCode == Keys.I)
            {
                MyFindReplace.ShowIncrementalSearch();
                e.SuppressKeyPress = true;
            }
            else if (e.Control && e.KeyCode == Keys.G)
            {
                GoTo MyGoTo = new GoTo((Scintilla)sender);
                MyGoTo.ShowGoToDialog();
                e.SuppressKeyPress = true;
            }else if ( e.Control && e.KeyCode == Keys.B)
            {
                string findTxt = TextArea.SelectedText;
                MyFindReplace.FindAll(findTxt, false, true);
                e.SuppressKeyPress = true;

            }

            #endregion
}

 

 

 Example