JSON은 무엇인가?
http://wiki.javajigi.net/pages/viewpage.action?pageId=18448386
HW3은 11/20 (금)까지 연장합니다~
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != ‘.’))
{
e.Handled = true;
}
// only allow one decimal point
if ((e.KeyChar == ‘.’) && ((sender as TextBox).Text.IndexOf(‘.’) > -1))
{
e.Handled = true;
}
}
건조지수(Aridity Index)를 구하고, 기후의 상태를 알려주는 프로그램을 작성한다
(1) 사용자에게 연강수량(Precipitation)과 연평균기온(Temperature)를 입력 받는다. 연강수량의 단위는 mm이고, 연평균기온의 단위는 oC이다.
(2) 건조지수를 다음 공식으로 계산하고 결과를 화면에 출력한다.
건조지수 De Martonne Aridity Index = Precipitation/ (Temperature + 10)
(3) 다음 기준에 따라 기후의 상태를 판단해서 화면에 출력한다.
AI >= 60 => Perhumid
30 <= AI < 60 => Humid
20 <= AI < 30 => SubHumid
15 <= AI < 20 => SemiArid
5 <= AI < 15 => Arid
AI < 5 => ExtremelyArid
// NumberTextBoxLib custom control (inherited from TextBox)
public
partial class NumberTextBox : TextBox
{
public NumberTextBox()
{
InitializeComponent();
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
int value = 0;
e.Handled = !int.TryParse(e.KeyChar.ToString(), out value);
}
}
사용자 정의 컨트롤
-기존 컨트롤을 상속받아 사용자 정의 새로운 컨트롤을 작성
-UserControl을 상속받아 합성 컨트롤을 작성
1. 파일 메뉴->새로 만들기->프로젝트
Visual C# 프로젝트 목록에서 “Windows Forms 컨트롤 라이브러리” 선택하고 이름을 “NumberTextBoxLib”을 입력
2. 솔루션 탐색기에서 UserControl1.cs를 NumberTextBox.cs로 변경
NumberTextBox.cs 코드에서 상속을 UserControl에서 TextBox로 변경
public partial class NumberTextBox: TextBox
NumberTextBox.Designer.cs에 InitializeComponent()에서 AutoScaleMode 속성은 삭제
NumberTextBox.cs 코드에서 OnKeyPress(…) 메소드를 재정의
솔루션을 빌드하면 컨트롤이 완성
완성
———————————————————————————————
사용자 정의 컨트롤 사용
1.솔루션 탐색기의 “참조”에 “NumberTextBoxLib.dll”를 “참조추가”
“도구상자”에서 오른쪽 마우스 “항목선택”을 한 후 “찾아보기” 버튼에서 “NumberTextBoxLib.dll” 다시 로딩한 후, “NumberTextBox” 에 체크가 됬는지 확인
2. 폼에 “NumberTextBox”를 사용하여 디자인하고 솔루션을 빌드하면 컨트롤이 완성
Label, Button 사용예
http://dis.dankook.ac.kr/lectures/hci09/entry/Controls
Buttons
http://dis.dankook.ac.kr/lectures/hci09/entry/Buttons
GroupBox
http://dis.dankook.ac.kr/lectures/hci09/entry/GroupBox
TextBox
http://dis.dankook.ac.kr/lectures/hci09/entry/TextBox
LinkedLabel
http://dis.dankook.ac.kr/lectures/hci09/entry/Linked-Label
ListBox
http://dis.dankook.ac.kr/lectures/hci09/entry/ListBox
Poll
http://dis.dankook.ac.kr/lectures/hci09/entry/Poll
PictureBox
http://dis.dankook.ac.kr/lectures/hci09/entry/Picture-Timer
TabControl
http://dis.dankook.ac.kr/lectures/hci09/entry/Tab-Control
TreeControl
http://dis.dankook.ac.kr/lectures/hci09/entry/Tree-Control
ListView
http://dis.dankook.ac.kr/lectures/hci09/entry/ListView
Textbox (Number Only)
http://dis.dankook.ac.kr/lectures/hci09/entry/Number-Only-Textbox
Lecture9