[C#] 텍스트 에디터(윈도우 메모장) 만들기 9
2024. 2. 16. 21:10ㆍ[C#]/[C# 윈폼] 혼자해보는 윈도우 메모장 만들기
오늘은 서식 메뉴들, 보기 메뉴들, 메모장 정보를 만들어봤습니다!
1. 자동 줄바꿈
- 이 기능은 활성화 시, 메모장의 크기에 맞게 텍스트 줄을 조절해주는 기능입니다.
//자동 줄바꿈
private void AutoLineToolStripMenuItem_Click(object sender, EventArgs e)
{
if (AutoLineToolStripMenuItem.Checked == false)
{
AutoLineToolStripMenuItem.Checked = true;
MyTextArea.WordWrap = true;
}
else
{
AutoLineToolStripMenuItem.Checked = false;
MyTextArea.WordWrap = false;
}
}
- 해당 메뉴가 체크되어 있지 않다면, 체크를 활성화 하고 WordWrap 속성을 true 값을 줘서 줄이 넘어가도록 해줍니다.
- 체크되어 있으면, 체크 표시를 비활성화하고 WordWrap 속성에 false를 줘서 줄이 넘어가지 않도록 합니다.
2. 글꼴
FontDialog fontDialog = new FontDialog();
if (fontDialog.ShowDialog() == DialogResult.OK)
{
MyTextArea.Font = fontDialog.Font;
}
- 다이어로그를 열어서 폰트를 지정해줍니다.
3. 확대/축소/기본값으로
- 처음에는 계산한 값을 폰트 사이즈에 적용하는 방식으로 했는데, 스크롤도 적용하면 문제가 생겨서 방식을 변경했습니다.
- ZoomFactor 속성을 이용했습니다.
// 확대하기
private void ZoomInToolStripMenuItem_Click(object sender, EventArgs e)
{
ZoomIn();
}
// 축소하기
private void ZoomOutToolStripMenuItem_Click(object sender, EventArgs e)
{
ZoomOut();
}
// 기본값으로
private void DefaultToolStripMenuItem_Click(object sender, EventArgs e)
{
MyTextArea.ZoomFactor = 1;
}
private void 메모장_MouseWheel(object sender, MouseEventArgs e)
{
if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
{
if (e.Delta > 0)
{
ZoomIn();
}
else if (e.Delta < 0)
{
ZoomOut();
}
}
}
private void ZoomIn()
{
if (MyTextArea.ZoomFactor < 64)
{
MyTextArea.ZoomFactor += 0.1f;
}
}
private void ZoomOut()
{
if (MyTextArea.ZoomFactor > 0.2f)
{
MyTextArea.ZoomFactor -= 0.1f;
}
}
- 휠을 이용한 확대/축소 기능도 추가해야되기 때문에 MouseWheel 이벤트를 직접 추가합니다.
4. 메모장 정보
private void InformationToolStripMenuItem_Click(object sender, EventArgs e)
{
ShowDialogs("info");
}
infoDialog = new Information();
infoDialog.ShowDialog();
- 새로운 폼을 하나 생성해줍니다.
- 확인 버튼 클릭 시 this.Close()를 통해 폼을 닫아줍니다.
이제 코드 정리하고, 페이지 설정 - 상태 표시줄 - 바꾸기 - 도움말 보기 기능만 추가하면 윈도우 메모장 끝입니다.
반응형
'[C#] > [C# 윈폼] 혼자해보는 윈도우 메모장 만들기' 카테고리의 다른 글
[C#] 윈도우 메모장 전체 코드 (1) | 2024.02.20 |
---|---|
[C#] 텍스트 에디터(윈도우 메모장) 만들기 10 마무리 (0) | 2024.02.19 |
[C#] 텍스트 에디터(윈도우 메모장) 만들기 8 (0) | 2024.02.15 |
[C#] 텍스트 에디터(윈도우 메모장) 만들기 7 (0) | 2024.02.07 |
[C#] 텍스트 에디터(윈도우 메모장) 만들기 6 (0) | 2024.02.06 |