SERIALIZATION

Person Serialization (Using BinaryFormatter or SoapFormatter)
http://dis.dankook.ac.kr/lectures/hci09/entry/Simple-Serialization

Person XML Serialization (Using XML Serializer or Soap XML Serializer)
http://dis.dankook.ac.kr/lectures/hci09/entry/XML-Serialization

Person Using ISerialable Interface
http://dis.dankook.ac.kr/lectures/hci09/entry/ISerialable

PersonList Serialization (Using BinaryFormatter or SoapFormatter)
http://dis.dankook.ac.kr/lectures/hci09/entry/PersonList-Serialization

GDI+

GDI+ A Higher Level API
http://www.csharphelp.com/archives3/files/archive593/GDI.pdf

Pen
http://dis.dankook.ac.kr/lectures/hci09/entry/Pen

Brush
http://dis.dankook.ac.kr/lectures/hci09/entry/Brush

Image
http://dis.dankook.ac.kr/lectures/hci09/entry/DrawImage

ImageAttribute
http://dis.dankook.ac.kr/lectures/hci09/entry/ImageAttributes

ImageTransform
http://dis.dankook.ac.kr/lectures/hci09/entry/DrawImageTransform

DoubleBuffering
http://dis.dankook.ac.kr/lectures/hci09/entry/DoubleBuffering

Graphic Path
http://dis.dankook.ac.kr/lectures/hci09/entry/PathScribble

Draw Freedraw line & rubber band line
http://dis.dankook.ac.kr/lectures/hci10/entry/Rubber-band-line-drawing

Draw shapes
http://dis.dankook.ac.kr/lectures/hci10/entry/Draw-Shape

DrawImageObjects
http://dis.dankook.ac.kr/lectures/hci10/entry/DrawImageObjects

Final Exam

기말 프로젝트
MetricConverter 같은 Forms 프로그램 (주제선정 due by 12/5)
-Menu, Toolbar, 각종 Controls (Label, Button, TextBox, etc) 포함

이성광 – 축구 구단 2개의 23명 선수 정보 출력

우해찬 – Metric Converter (6종류의 4개의다른 unit간의 변환 – unit를 변경가능하도록)

이중호 – 게임

박효인 –

 

Custom Control

사용자 정의 컨트롤
-기존 컨트롤을 상속받아 사용자 정의 새로운 컨트롤을 작성
-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”를 사용하여 디자인하고 솔루션을 빌드하면 컨트롤이 완성

Integer Number Only Textbox

//number only textbox using TryParse
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
int value = 0;
e.Handled = !int.TryParse(e.KeyChar.ToString(), out value);
}

//number only textbox using Regex.IsMatch
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), “\\d+”))
e.Handled = true;
}

// 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);

}

}

1305433735.zip