[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()를 통해 폼을 닫아줍니다.

이제 코드 정리하고, 페이지 설정 - 상태 표시줄 - 바꾸기 - 도움말 보기 기능만 추가하면 윈도우 메모장 끝입니다.

 

반응형