번호 | 컨트롤 이름 | 컨트롤 유형 | 설명 |
1 | lb_content_info | Label | 정보 표시 |
2 | tbox_content | TextBox | 내용 편집 창 |
3 | bnt_parse | Button | 내용 분석 버튼 |
4 | gb_result | GroupBox | 결과 그룹 박스 |
5 | lb_cnt_info | Label | 정보 표시 |
6 | lb_cnt | Label | 전체 형태소 개수 |
7 | lv_result | ListView | 결과 리스트 뷰 |
8 | ch_name | ColumnHeader | 형태소 이름 |
9 | ch_rcnt | ColumnHeader | 참조 개수 |
[표 7.1] 형태소 분석기 메인 폼의 자식 컨트롤
분석하기 버튼을 클릭했을 때 이벤트 핸들러를 작성합시다.
private void btn_parse_Click(object sender, EventArgs e)
이벤트 핸들러에서는 먼저 결과 리스트의 항목을 지워줍니다.
lv_result.Items.Clear();
내용 편집 창에 입력한 문자열을 얻어와서 형태소 분석기에게 분석 요청합니다. 형태소 분석기는 내용 분석 이외의 다른 작업을 진행하지 않으므로 정적 클래스로 작성합시다. 그리고 형태소 분석을 위해 정적 메버드 Parse를 제공합시다.
string content = tbox_content.Text; List<Morpheme> list = MorphemeParser.Parse(content);
분석 결과의 형태소 개수를 lb_cnt 컨트롤의 Text 속성에 설정합니다. 그리고 결과 항목을 리스트 뷰에 추가합니다.
lb_cnt.Text = list.Count.ToString(); ListViewItem lvi = null; foreach (Morpheme mo in list) { lvi = new ListViewItem( new string[2] { mo.Name, mo.Count.ToString() } ); lv_result.Items.Add(lvi); }
▷ MainForm.cs
using System; using System.Collections.Generic; using System.Windows.Forms; using WSE_Core; using MorphemeParserLib; namespace MorphemeParser_예광탄 { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void btn_parse_Click(object sender, EventArgs e) { lv_result.Items.Clear(); string content = tbox_content.Text; List<Morpheme> list = MorphemeParser.Parse(content); lb_cnt.Text = list.Count.ToString(); ListViewItem lvi = null; foreach (Morpheme mo in list) { lvi = new ListViewItem( new string[2] { mo.Name, mo.Count.ToString() } ); lv_result.Items.Add(lvi); } } } }