프로그래밍/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