1 Console Write Line Console Write LineTest Program

  • Slides: 147
Download presentation

(연습 1. ) Console. Write. Line() 연습해보기 Console. Write. Line(“Test Program”); string name =

(연습 1. ) Console. Write. Line() 연습해보기 Console. Write. Line(“Test Program”); string name = “Her. Yong. Do"; int number = 8231033; Console. Write. Line("이름: {0} 학번: {1}", name, number); string name = “Her. Yong. Do"; int number = 8231033; Console. Write. Line("이름: " + name + "학번: " + number);

static void Main(string[] args) { string in_str; Console. Write("반지름 입력 : "); in_str =

static void Main(string[] args) { string in_str; Console. Write("반지름 입력 : "); in_str = Console. Read. Line(); } double radius = double. Parse(in_str); // 원둘레 계산 double C, Area; C = 2*3. 141592*radius; Area = 3. 141592*radius; Console. Write. Line("반지름 : " + radius + " -> 원둘레 : " + C); Console. Write. Line("반지름 : " + radius + " -> 원면적 : " + Area);

비주얼 C# 의 자료 형(CTS) Class name System. Byte System. SByte System. Int 16

비주얼 C# 의 자료 형(CTS) Class name System. Byte System. SByte System. Int 16 System. Int 32 System. Int 64 System. UInt 16 System. UInt 32 C# 형식 byte short int long ushort uint C++ 형식 unsigned char short int 또는 long __int 64 unsigned short unsigned int 또는 unsigned long 비주얼 베이직 형식 Byte Short Integer Long UShort UInteger System. UInt 64 System. Single System. Double System. Boolean System. Char System. Decimal System. Int. Ptr System. UInt. Ptr System. Object System. String ulong float double bool char decimal 없음. object string unsigned __int 64 float double bool wchar_t Decimal 없음. Object* String* ULong Single Double Boolean Char Decimal 없음 없음 Object String

- 사용 예) string data 1 = “ 1234567”; float data 2 = 10.

- 사용 예) string data 1 = “ 1234567”; float data 2 = 10. 5 f; int data 3 = 0; Console. Write. Line(“문자열 data 1 = “ + data 1); data 3 = System. Convert. To. In 32(data 1) + System. Convert. To. In 32(data 2) Console. Write. Line(“ {0} + {1} = {2} “, data 1, data 2, data 3); ( 알아두면 유용) - C# 은 정수계열 형식, 부동 소수점 형식 모두에게 Parse() 메소드를 제공 - 예) int a = int. Parse(“ 12345”); float b = float. Parse(“ 123. 45”); - C# 은 또한 숫자를 문자열로 변환하기 위해 To. String() 메소드를 제공 - 예) int c = 12345 ; string d= c. To. String(); float e = 123. 45; string f = e. To. String();

열거형 - 같은 범부에 속하는 여러 개의 상수를 선언할 때 사용 - const 키워드

열거형 - 같은 범부에 속하는 여러 개의 상수를 선언할 때 사용 - const 키워드 대신 enum 키워드를 이용 - 예) enum 열거형식명 { 상수 1, 상수 2, 상수 3, …… } - 예) enum Dialog. Result { YES, NO, OK, CANCEL}; Dialog. Result result = Dialog. Result. YES; Console. Write. Line(result == Dialog. Result. Yes); Console. Write. Line(result == Dialog. Result. NO); Console. Write. Line(result == Dialog. Result. OK); Console. Write. Line(result == Dialog. Result. CANCEL); typeof (연산자) - C#에서 객체의 형(System: : Type)을 반환하는 연산자 - 예) Type [] t = { typeof(int), typeof(float), typeof(char) } ; for(int i=0; i<t. Length; i++) Console. Write. Line(t[i]. Name);

선택문 if(a>0) a = b+c; else a= a – c; if(grade>=90) Console. Write. Line(“성적은

선택문 if(a>0) a = b+c; else a= a – c; if(grade>=90) Console. Write. Line(“성적은 else if(grade>=80 Console. Write. Line(“성적은 else if(grade>=70) Console. Write. Line(“성적은 else if(grade>=60) Console. Write. Line(“성적은 Else Console. Write. Line(“성적은 A”); B”); C”); D”); F”); 1. Switch 문으로 바꾸어 보시오? 2. 교과서 22 p 예제 실행해보기

namespace Console. Application 2 { class Program { static void Main(string[] args) { int

namespace Console. Application 2 { class Program { static void Main(string[] args) { int a, b, c, d = 1; int sum = 0; while (d == 10) { Console. Write("첫번째 숫자를 입력하세요: "); a =int. Parse(Console. Read. Line()); Console. Write("두번째 숫자를 입력하세요: "); b = int. Parse(Console. Read. Line()); Console. Write("세번째 숫자를 입력하세요: "); c = int. Parse(Console. Read. Line()); sum = a + b + c; d++; } Console. Write. Line("총 합은" + sum + "입니다"); } } }

반복문 for(int i=1; i<10; i++) for(int j=1; j<10; j++) Console. Write. Line(“{0} * {1}

반복문 for(int i=1; i<10; i++) for(int j=1; j<10; j++) Console. Write. Line(“{0} * {1} = {2}”, i, j, i*j); int sum =0; int i = 1; do { While 문으로 바꾸어 sum = sum + i; 보시오 ? i = i + 1; } while(i <= 100) ; Console. Writeline(“ 1부터 100까지의 합은” + sum); int sum =0; int [] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; foreach(int i in arr) sum = sum + i; Console. Writeline(“ 1부터 10까지의 합은” + sum);

- 예) namespace Property_test { class Prop. Test { private string name; // 멤버

- 예) namespace Property_test { class Prop. Test { private string name; // 멤버 public string Name { get { return name; } set { name = value + " 님 반갑습니다. "; } } } class Program { public static void Main() { Prop. Test pt = new Prop. Test(); pt. Name = "C# "; // set 접근자 사용 string na = pt. Name; // get 접근자 사용 Console. Write. Line("이름 : {0}", na); } } }

메소드 중복 정의 - 동일한 메소드 이름을 가진 메소드를 여러 개 선언하여 이용 -

메소드 중복 정의 - 동일한 메소드 이름을 가진 메소드를 여러 개 선언하여 이용 - 예) class Program { public int Add(int a, int b) { return(a+b); } public float Add(float a, float b) { // 중복정의 return(a+b); } public double Add(double a, double b) { // 중복정의 return(a+b); } } public static void Main() { Program ex = new Program(); int i= ex. Add(3, 5); float j= ex. Add(0. 1 f, 0. 2 f); double k= ex. Add(0. 5, 0. 7); Console. Write. Line("정수합: {0}", i); Console. Write. Line("실수합: {0}", j); Console. Write. Line("배정도실수합: {0}", k); }

메소드 재정의 - 부모 클래스로부터 상속받은 메소드를 파생 클래스에서 재정의하여 사용 - new 명령어

메소드 재정의 - 부모 클래스로부터 상속받은 메소드를 파생 클래스에서 재정의하여 사용 - new 명령어 이용하는 방법 / virtual, override 명령어 이용하는 방법 (파생클래스 객체를 부모 객체로 형변환(업캐스팅) 할 경우 차이점이 있음) - 예) class Base { public void New. Func() { Console. Write. Line("Base. New. Func"); } public virtual void Virtual. Func(){ Console. Write. Line("Base. Virtual. Func"); } } class Derived : Base { new public void New. Func() { Console. Write. Line("Derived. New. Func"); } public override void Virtual. Func(){ Console. Write. Line("Derived. Virtual. Func"); } } class Program { public static void Main() { Derived d = new Derived(); Base a = d; // 업캐스팅 d. New. Func(); // Derived의 New. Func a. New. Func(); // Base의 New. Func d. Virtual. Func(); // Derived의 Virtual. Func a. Virtual. Func(); // Derived의 Virtual. Func } }

구조체 클래스 구조체 참조형식 값 형식 얕은 복사(Shallow Copy) 깊은 복사(Deep Copy) new 연산자와

구조체 클래스 구조체 참조형식 값 형식 얕은 복사(Shallow Copy) 깊은 복사(Deep Copy) new 연산자와 생성자 필요 선언만으로 생성 상속 가능 상속 불가 매개변수 없는 생성자 선언 가능 매개변수 없는 생성자 선언 불가능 struct Test { public string name; public int korean; public int math; public int science; public Test(string name, int korean, int math, int science) { this. name = name; this. korean = korean; this. math = math; this. science = science; } public void Show() { Console. Write. Line(name + "의 시험 점수: "); Console. Write. Line("국어: "+ korean + ", 수학: "+ math + ", 과학: " + science); } }

class Program { static void Main(string[] args) { Test student 1 = new Test("김철수",

class Program { static void Main(string[] args) { Test student 1 = new Test("김철수", 94, 96, 84, 92); student 1. Show(); Test student 2; 결과는 student 2. name = "김영희"; student 2. korean = 100; 교과서 student 2. math = 84; student 2. science = 86; student 2. Show(); } } ? 50 p 예제 실행해보기

필수 구조체 (매우 중요함) 기능 Point / Point. F Point()000 생성자 속성(프로퍼티) 메소드 SIZE

필수 구조체 (매우 중요함) 기능 Point / Point. F Point()000 생성자 속성(프로퍼티) 메소드 SIZE / Size. F Size() Point(int data) Point(SIZE size) Size(Point data) Point(int x, int y) Size(int x, int y) X (Point x 좌표) Height (Size 의 세로 값) Y (Point y 좌표) Width (Size의 값) Empty (Point 객체 최기화) Empty (Size 객체 초기화) is. Empty (Point 가 비워있는지 검사) is. Empty (Size 가 비워있는지 검사) To. String() Equals(Point obj) Offset(int x, int y) Rectangle 구조체 속성과 메소드 알아보기 ? Color 구조체 속성과 메소드 알아보기 ?

class Simple. Indexer { Array. List lname = new Array. List(); //Arry. List의 객체를

class Simple. Indexer { Array. List lname = new Array. List(); //Arry. List의 객체를 생성 public object this[int index] { // //Array. List의 객체가 반환하는 값이 object 형 get { if (index > -1 & index < lname. Count) //속성 Count는 포함된 요소의 수 return lname[index]; else { Console. Write. Line("sid["+index+"] 는 없습니다!"); return null; } set { if(index > -1 & index < lname. Count) lname[index] = value; else if (index == lname. Count) { Console. Write. Line("lname. Count = {0}", lname. Count); lname. Add(value); } else Console. Write. Line("sid["+index+"] : 입력 범위 초과 에러!!"); } }

class Program { public static void Main() { Simple. Indexer sid = new Simple.

class Program { public static void Main() { Simple. Indexer sid = new Simple. Indexer(); sid[0] = "Choi"; // 인덱스 0에 추가 sid[1] = "Lee"; // 인덱스 1에 추가 sid[2] = "Cho"; // 인덱스 2에 추가 sid[4] = "Park"; // 범위초과 Console. Write. Line(sid[0]); Console. Write. Line(sid[1]); Console. Write. Line(sid[2]); Console. Write. Line(sid[4]); // 존재하지 않음 } }

인터페이스 구현 I (메소드) - 인터페이스의 메소드를 구현하는 경우, - 예) interface My. Interface

인터페이스 구현 I (메소드) - 인터페이스의 메소드를 구현하는 경우, - 예) interface My. Interface { void Method_A(); } class My. Class : My. Interface //My. Class는 My. Interface를 구현 { public void Method_A() { // 메소드 구현 Console. Write. Line("인터페이스의 메서드를 구현"); } } class Program { public static void Main() { My. Class mc = new My. Class(); My. Interface imc = mc; //업캐스팅, 동적 바인딩, 다형 변수 imc. Method_A(); //구현된 메서드를 호출 mc. Method_A(); } }

인터페이스 구현 II (속성) - 속성(Property)을 인터페이스에 사용할 때에는 속성의 이름과 set을 구현할 것이지,

인터페이스 구현 II (속성) - 속성(Property)을 인터페이스에 사용할 때에는 속성의 이름과 set을 구현할 것이지, get을 구현할 것인지만 명시 - 인터페이스를 상속받은 클래스에서는 get 속성과 set 속성을 구현 - 예) interface IMy. Interface { int IProperty { get ; set ; } } class Implements. Class : IMy. Interface { private int my. Value; public int Myvalue { // 속성 구현 get { return my. Value ; } set { my. Value = value ; } } } class Program { public static void Main() { Implements. Class ic = new Implements. Class(); IMy. Interface imi = ic; // 업 캐스팅, 동적 바인딩 imi. Myvalue = 1000; // set Console. Write. Line("Interface의 Property : " + imi. Myvalue); } }

인터페이스 구현 III (인덱서) - 인덱서를 사용하기 위해서는 인덱서의 프로토타입만을 인터페이스에 명시 - 인터페이스를

인터페이스 구현 III (인덱서) - 인덱서를 사용하기 위해서는 인덱서의 프로토타입만을 인터페이스에 명시 - 인터페이스를 상속받은 클래스에서는 인덱서를 구현 - 예) public interface Simple. Interface { object this[int index] { get; set; } } public class Simple. Indexer : Simple. Interface { Array. List lname = new Array. List(); public object this[int index] { //인덱서 구현 get { If (index >-1 & index<lname. Count) return lname[index]; else return null; } set { if(index>-1 & index<lname. Count) name[index] = value; else if (index == lname. Count) lname. Add(value); else Console. Write. Line("sid["+index+"] : 입력에러!!"); } } }

class Program { public static void Main(){ Simple. Indexer sid = new Simple. Indexer();

class Program { public static void Main(){ Simple. Indexer sid = new Simple. Indexer(); sid[0]= "Choi"; //인덱스 0에 추가 sid[1]= "Lee"; //인덱스 1에 추가 sid[2]= "Cho"; //인덱스 2에 추가 sid[4] = "Park"; // 범위초과 Console. Write. Line(sid[0]); Console. Write. Line(sid[1]); Console. Write. Line(sid[2]); } }

인터페이스 구현 IV (다중상속) - 클래스와는 다르게 다중 상속이 가능 - 예) interface Inter.

인터페이스 구현 IV (다중상속) - 클래스와는 다르게 다중 상속이 가능 - 예) interface Inter. A { void a(); } interface Inter. B { void b(); } interface Inter. C : Inter. A { void c(); } class Multi. Inheritance : Inter. B, Inter. C { public void a() { Console. Write. Line( "Inter. A의 a()를 구현" ); } public void b() { // 메서드 b 구현 Console. Write. Line( "Inter. B의 b()를 구현" ); } public void c() { // 메서드 c 구현 Console. Write. Line( "Inter. C의 c()를 구현" ); } } public class Program { public static void Main() { Multi. Inheritance mi = new Multi. Inheritance(); mi. a(); mi. b(); mi. c(); } }

delegate void Simple. Delegate 1(); delegate void Simple. Delegate 2(int i); // delegtate 선언

delegate void Simple. Delegate 1(); delegate void Simple. Delegate 2(int i); // delegtate 선언 ② class My. Class { public void My. Method 1() { // delegate 할 메소드 ① System. Console. Write. Line("My. Class. My. Method 1"); } public void My. Method 2(int x) { // delegate 할 메소드 ① System. Console. Write. Line("My. Class. My. Method 2 x=" + x); } } class Program { public static void Main() { My. Class at = new My. Class(); // delegate 메소드 포함한 객체 만들기 ③ // delegate 생성 ④ Simple. Delegate 1 d 1 = new Simple. Delegate 1( at. My. Method 1 ); Simple. Delegate 2 d 2 = new Simple. Delegate 2( at. My. Method 2 ); } } // delegate 호출 ⑤ d 1(); d 2(1000);

멀티 델리게이트(Multin Delegate) 구현 - 사용하는 연산자 ① += delegate 에 새로운 delegate 를

멀티 델리게이트(Multin Delegate) 구현 - 사용하는 연산자 ① += delegate 에 새로운 delegate 를 추가 등록시 사용 ② -= delgate 에 포함된 delegate를 삭제시 사용 - 하나의 delegate 에 여러 개의 delegate가 포함되어 있으면, 호출시 포함된 모든 delegate 가 호출됨 - 예) class Example { public static void Static. Method() { Console. Write. Line(“Static Method”); } public void Normal Method() { Console. Write. Line(“Normal Method”); } } delegate void Exam. Delegate; 결과는 ? 교과서 66 p 예제 실행해보기 class Delegate. Exam { Example obj = new Example(); Exam. Delegate ex 1 = new Exam. Delegate(obj. Normal. Method); Exam. Delegate ex 2 = new Exam. Delegate(Example. Static. Method); Exam. Delegate data = ex 1; data(); } data += ex 2; data -= ex 2; data(); data()

⑤ 폼의 클릭(click) 이벤트 처리기 Click. Receive() 메소드를 추가한다 ⑥ 폼의 클릭(click) 이벤트 처리기를

⑤ 폼의 클릭(click) 이벤트 처리기 Click. Receive() 메소드를 추가한다 ⑥ 폼의 클릭(click) 이벤트 처리기를 델리게이트에 등록한다 ⑦ main() 함수에 Application. Run(new Evnet. Form()) 을 추가한다 using System; using System. Windows. Forms; //프로그램에서 윈도우 폼을 사용하기 위해 추가 public class Evnet. Form : Form { public Event. Form() { // 생성자에서 Click 이벤트에 대한 이벤트처리기 등록 this. Click += new Event. Handler( Click. Receive ); } private void Click. Receive( object sender, Event. Args e ) { // 이벤트 처리기 추 가 Message. Box. show("마우스를 클릭했습니다. "); } } public class Program { static void Main() { Application. Run( new Evnet. Form()); } }

- 도구상자 컨트롤을 이용하여 Text. Box, Label 3개, Button 을 을 배치한다 - label의

- 도구상자 컨트롤을 이용하여 Text. Box, Label 3개, Button 을 을 배치한다 - label의 text 속성을 ID 로 변경한다 - 아래 오른쪽 표와 같이 컨트롤의 모든 속성을 설정한다 컨트롤 속성 값 Text. Box 1 Name text. ID Text. Box 2 Name text. PW Password. Char * Name text. Contents Multi. Line True Scroll. Bars True Name button Text 확인 Label 1 Text ID Label 2 Text PW Label 3 Text Content Text. Box 3 Button - 버튼을 더블 클릭하여 button_click() 메소드를 추가한 후 다음과 같은 코드를 입력한다 Message. Box. Show(“내용이 올바르게 입력되었습니까”, ”텍스트박스 예제”);

- 도구상자 컨트롤을 이용하여 Group. Box, Radio. Button, Check. Box, Text. Box를 아래와 같이

- 도구상자 컨트롤을 이용하여 Group. Box, Radio. Button, Check. Box, Text. Box를 아래와 같이 배치한다 - 아래 표와 같이 컨트롤의 모든 속성을 설정한다 컨트롤 Group. Box 값 Group. Box Text 색 선택 Radio. Button 1 Text 붉은색 Name radio. Button 1 Text 파란색 Name radio. Button 2 Text 녹색 Name radio. Button 3 Text 체크박스 Name check. Box 1 Text “” Name text. Box 1 Radio. Button Check. Box 속성 Radio. Button 2 Radio. Button 3 Check. Box Text. Box - Radio. Button에 대한 이벤트를 처리하기 위해 붉은색 Radio. Button을 선택 한 후 속성창의 버튼(이벤트)를 누른다. Click 이벤트를 선택 후 오른 쪽에 radio. Button_Click 을 입력한다 - 파란색 Radio. Button, 녹색 Radio. Button도 동일한 과정을 반복한다 (이벤트 함수를 붉은색 Radio. Button 과 동일하게 radio. Button_Click 로 설정)

- Radio. Button에 대한 이벤트 처리함수 radio. Radio. Button_Click 에 아래와 같이 입력한다 private

- Radio. Button에 대한 이벤트 처리함수 radio. Radio. Button_Click 에 아래와 같이 입력한다 private void radio. Button_Click(object sender, Event. Args e) { if(radio. Button 1. Checked) text. Box 1. Text="빨간색이 선택되었습니다. "; if(radio. Button 2. Checked) text. Box 1. Text="파란색이 선택되었습니다. "; if(radio. Button 3. Checked) text. Box 1. Text="녹색이 선택되었습니다. "; } - Check. Box에 대한 이벤트를 처리하기 위해 붉은색 Check. Box를 선택 한 후 속성창의 버튼(이벤트)를 누른다. Click 이벤트를 선택 후 오른 쪽에 check. Box_Click 을 입력한다 - Check. Box에 대한 이벤트 처리함수 check. Box_Click 에 아래와 같이 입력한다 private void check. Box 1_Click(object sender, Event. Args e) { if(check. Box 1. Checked) text. Box 1. Text="체크표시 설정되었습니다"; else text. Box 1. Text="체크표시 설정되지 않았습니다"; } 결과 꼭 확인하세요. . ?

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Scroll. Spin 로 한다 Hscroll. Bar 컨트롤 HScroll. Bar 1 값 Maximum 255 Name h. SCroll. Red Maximum 255 Name h. Scroll. Green Maximum 255 Name h. SCroll. Blue Label 1 Text 빨간색 Label 2 Text 녹색 Label 3 Text 파란색 Numeric. Up. Down 1 Maximum 255 Name Up. Down. Red Maximum 255 Name Up. Down. Green Maximum 255 Name Up. Down. Blue Label 4 Text 빨간색(스핀) Label 5 Text 녹색(스핀) Label 6 Text 파란색(스핀) HScroll. Bar 2 HScroll. Bar 3 Numeric. Up. Down 2 Numeric. Up. Down 속성 Numeric. Up. Down 3

- 더블 클릭으로 이벤트 처리기를 작성하지 말고 스크롤 바를 선택한 후 속성 창의 Scroll

- 더블 클릭으로 이벤트 처리기를 작성하지 말고 스크롤 바를 선택한 후 속성 창의 Scroll 이벤트 오른쪾 옆에 h. Scroll. Red_Scroll 이라고 직접 이벤트 처리 함수를 기 록한다 - 3개의 수평 스크롤바에 대한 이벤트 처리기는 동일한 내용을 수행하므로, 이벤트 처리기 이름을 동일하게 주어 한 개가 처리기로 처리한다. private void h. Scroll. Red_Scroll(object sender, Scroll. Event. Args e) { this. Back. Color = Color. From. Argb(h. Scroll. Red. Value, h. Scroll. Green. Value, h. Scroll. Blue. Value); } - 스핀 버튼도 동일한 방법으로 작성하여 보시오. (스핀버튼의 경우는 Value. Changed 이벤트를 이용하시오) private void Up. Down. Red_Value. Changed(object sender, Event. Args e) { // 속성 Value는 decimal 타입이므로 int로 캐스팅 this. Back. Color = Color. From. Argb( (int)Up. Down. Red. Value, (int)Up. Down. Green. Value, (int)Up. Down. Blue. Value ); }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 List. Com. Bo 로 한다 컨트롤 Label 1 Label 2 List. Box Button 1 Button 2 Button 3 List. Box Button Text. Box 속성 값 Text 우리나라의 주요 산의 목록 Name label 1 Text 새 항목 Name label 2 Name list. Box 1 Items 설악산 지리산 북한산 Text 추가 Name button 1 Text 삽입 Name button 2 Text 모두 삭제 Name button 3 Text “” Name text. Box 1

- 폼에서 리스트 박스 컨트롤을 선택한 후 속성창의 Selectd. Index. Changed 이벤 트 처리기를

- 폼에서 리스트 박스 컨트롤을 선택한 후 속성창의 Selectd. Index. Changed 이벤 트 처리기를 추가한다 private void list. Box 1_Selected. Index. Changed(object sender, Event. Args e) { // 리스트 박스에서 마우스 클릭하는 경우 string str = list. Box 1. Selected. Item. To. String(); Message. Box. Show(str+"을 선택했습니다. "); } - 폼에서 3개의 버튼 컨트롤을 각각 선택한 후 click 이벤트 처리기를 아래와 같이 작성한다 private void button 1_Click(object sender, Event. Args e) // 추가 버튼 클릭 처리기 { list. Box 1. Items. Add(text. Box 1. Text); text. Box 1. Text=""; } private void button 2_Click(object sender, Event. Args e) // 삽입 버튼 클릭 이벤트 처리기 { list. Box 1. Items. Insert(0, text. Box 1. Text); text. Box 1. Text=""; } private void button 3_Click(object sender, Event. Args e) // 모두 삭제 버튼 클릭 이벤트 처리기 { list. Box 1. Items. Clear(); }

- 앞의 예제에 추가하여 아래와 같이 화면을 설계한다. 컨트롤 Form 1 Checked. List. B

- 앞의 예제에 추가하여 아래와 같이 화면을 설계한다. 컨트롤 Form 1 Checked. List. B ox List. Box 2 Button 4 Button 5 Button 6 Text. Box 2 Checked. List. Box Text. Box Combo. Box Button Combo. Box 속성 값 Maximize. Box False Form. Border. Style Fixed. Single Check. On. Click True Name checked. List. Box 1 Items 경기도, 강원도 Name list. Box 2 Selection. Mode One Text > Name button 1 Text >> Name button 2 Text 추가 Name button 3 Text 도명입력 Name text. Box 1 Name combo. Box 1 Drop. Down. Style Drop. Down. List Items 정렬, 선택아이템삭제

- 추가 버튼 컨트롤을 선택한 후 click 이벤트 처리기를 아래와 같이 작성한다 private void

- 추가 버튼 컨트롤을 선택한 후 click 이벤트 처리기를 아래와 같이 작성한다 private void button 3_Click(object sender, Event. Args e) { checked. List. Box 1. Items. Add(text. Box 1. Text); } - > 버튼 컨트롤을 선택한 후 click 이벤트 처리기를 아래와 같이 작성한다 private void button 2_Click(object sender, Event. Args e) { foreach(string str in checked. List. Box 1. Checked. Items) list. Box 2. Items. Add(str); } - >> 버튼 컨트롤을 선택한 후 click 이벤트 처리기를 아래와 같이 작성한다 private void botton 2_Click(object sender, Event. Args e) { foreach(string str in checked. List. Box 1. Items) list. Box 2. Items. Add(str); } - 콤보박스를 선택 후 Selected. Index. Changed 이벤트 처리기를 아래와 같이 작성한다

private void combo. Box 1_Selected. Index. Changed(object sender, Event. Args e) { switch(combo. Box

private void combo. Box 1_Selected. Index. Changed(object sender, Event. Args e) { switch(combo. Box 1. Selected. Item. To. String()) { case "정렬": list. Box 2. Sorted=true; break; case "선택아이템삭제": if(list. Box 2. Selected. Index != -1) { list. Box 2. Items. Remove. At(list. Box 2. Selected. Index); } break; case "모든아이템삭제": list. Box 2. Items. Clear(); break; } }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 List. View 로 한다 컨트롤 속성 값 Group. Box Text 보기 List. View Name list. View 1 Columns Text : 도명, 도청소재지 Width : 100, 200 Radio. Button 1 Radio. Button 2 Radio. Button 3 Group. Box Radio. Button List. View Radio. Button 4 Image. List 1 ( Image. List 2 도 동일) Items 경기도, 강원도, 충청도 Small. Image List image. List 1 Large. Image List image. List 2 Text 큰아이콘 Name radio. Large Text 작은아이콘 Name radio. Small Text 간단히 Name radio. Simple Text 자세히 Name radio. Detail Image MOON 01 ~ MOON 05 Name image. List 1 (image. List 2)

[4개의 Radio. Button click 이벤트 처리기 작성하기] - 그룹 박스에 속해있는 4개의 Radio. Button을

[4개의 Radio. Button click 이벤트 처리기 작성하기] - 그룹 박스에 속해있는 4개의 Radio. Button을 각각 더블클릭하여 이벤트 처 리기를 생성 후 아래의 코드를 입력한다 private void radio. Large_Click(object sender, Event. Args e) { list. View 1. View=View. Large. Icon; // 큰 아이콘 } private void radio. Small_Click(object sender, Event. Args e) { list. View 1. View=View. Small. Icon; // 작은아이콘 } private void radio. Simple_Click(object sender, Event. Args e) { list. View 1. View=View. List; // 간단히 } private void radio. Detail_Click(object sender, Event. Args e) { list. View 1. View=View. Details; // 자세히 }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Tree. View 로 한다 컨트롤 Tree. View 값 Name tree. View 1 Nodes 트리노트 편집기 이용 Image. List 1 Name image. List 1 Button 1 Text 추가 Name button 1 Text 삭제 Name button 2 Text 확장 Name button 3 Text 축소 Name button 4 Text “” Name text. Box 1 Button 2 Button 3 Button 4 Text. Box Tree. View 속성

- 4개의 Button에 대한 click 이벤트 처리기 작성하기 private void button 1_Click(object sender, Event.

- 4개의 Button에 대한 click 이벤트 처리기 작성하기 private void button 1_Click(object sender, Event. Args e) //“추가” 버튼의 클릭 이벤트 처리기 { //두번째, 세 번째 인수는 선택, 비선택 이미지 Tree. Node node 1 = new Tree. Node(text. Box 1. Text, 0, 1); if(tree. View 1. Selected. Node != null && tree. View 1. Selected. Node. Is. Selected) tree. View 1. Selected. Nodes. Add(node 1); else tree. View 1. Nodes. Add(node 1); //루트의 자식 노드로 삽입 } private void button 2_Click(object sender, Event. Args e) //“삭제” 버튼의 클릭 이벤트 처리기 { if(tree. View 1. Selected. Node != null && tree. View 1. Selected. Node. Is. Selected) ree. View 1. Selected. Node. Remove(); } private void button 3_Click(object sender, Event. Args e) //“확장”버튼의 클릭 이벤트 처리기 { tree. View 1. Expand. All(); } private void button 4_Click(object sender, Event. Args e) //“축소”버튼의 클릭 이벤트 처리기 { tree. View 1. Collapse. All(); }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Timer 로 한다 컨트롤 Track. Bar 60 Name track. Bar 1 Maimum 60 Name progress. Bar 1 Interval 100 Name timer 1 Label 1 Text 타이머 : 0 Button 1 Text 시작 Button 2 Text 정지 Timer Progress. Bar Timer Button 값 Maximum Progress. Bar Track. Bar 속성

- 카운터 값을 설정하기 위해 전용 멤버 필드 my. Count를 추가 private int my.

- 카운터 값을 설정하기 위해 전용 멤버 필드 my. Count를 추가 private int my. Count = 0; - 시작버튼, 정지버튼에 대한 click 이벤트 처리기 작성하기 private void button 1_Click(object sender, Event. Args e) { timer 1. Enabled = true; // Tick 이벤트를 주어진 시간 간격마다 발생시킴 } private void button 2_Click(object sender, Event. Args e) { timer 1. Enabled = false; // Tick 이벤트를 정지시킴 } - 타이머 이벤트 처리기 작성하기 private void timer 1_Tick(object sender, Event. Args e) { if (my. Count == 60) my. Count = 0; // my. Count가 60이 되면 0부터 다시 시작 else my. Count++; label 1. Text = "타이머 : " + my. Count. To. String(); // 레이블을 현재 타이머 값으로 설정 track. Bar 1. Value = my. Count; progress. Bar 1. Value = my. Count; }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Tab. Control 로 한다 컨트롤 Tab. Control Radio. Button Group. Box Label 속성 값 Name tab. Control 1 tab. Page 1 다음 페이지 참조 tab. Page 2 다음 페이지 참조 Timer Interval 100 Label 1 Name label 1 Radio. Button 1 Text 상 Radio. Button 2 Text 하 Radio. Button 3 Text 좌 Radio. Button 4 Text 우 Radio. Button 5 Text 보통 Radio. Button 6 Text 버튼 Radio. Button 7 Text 프렛버튼 Group. Box 1 Text 위치 Group. Box 2 Test 모양

- 추가된 Radio. Button들에 대한 click 이벤트 처리기 작성하기 private void radio. Button 1_Click(object

- 추가된 Radio. Button들에 대한 click 이벤트 처리기 작성하기 private void radio. Button 1_Click(object sender, Event. Args e) { tab. Control 1. Alignment = Tab. Alignment. Top; // 탭을 위쪽에 위치 } private void radio. Button 2_Click(object sender, Event. Args e) { tab. Control 1. Alignment = Tab. Alignment. Bottom; // 탭을 아래쪽에 위치 } private void radio. Button 3_Click(object sender, Event. Args e) { tab. Control 1. Alignment = Tab. Alignment. Left; // 탭을 왼쪽에 위치 } private void radio. Button 4_Click(object sender, Event. Args e) { tab. Control 1. Alignment = Tab. Alignment. Right; // 탭을 오른쪽에 위치 } private void radio. Button 5_Click(object sender, Event. Args e) { tab. Control 1. Appearance = Tab. Appearance. Normal; // 탭의 모양을 보통 모양으로 } private void radio. Button 6_Checked. Changed(object sender, Event. Args e) { tab. Control 1. Appearance = Tab. Appearance. Buttons; } private void radio. Button 7_Click(object sender, Event. Args e) { tab. Control 1. Appearance = Tab. Appearance. Flat. Buttons; // 탭의 모양을 프렛버튼 모양으 로 }

- Date. Time. Picker에서 날짜가 변경되면 Value. Changed 이벤트가 발생한다. 변경된 날짜와 시간을 구해

- Date. Time. Picker에서 날짜가 변경되면 Value. Changed 이벤트가 발생한다. 변경된 날짜와 시간을 구해 레이블의 Text 속성으로 설정하기 위해 private void date. Time. Picker 1_Value. Changed(object sender, Event. Args e) { label 1. Text = date. Time. Picker 1. Value. To. String(); } - Month. Calendar 에서 날짜를 선택하면 Date. Selected 이벤트가 발생한다 변경된 날짜와 시간을 구해 레이블의 Text 속성으로 설정하기 위해 private void month. Calendar 1_Date. Selected(object sender, Date. Range. Event. Args e) { label 1. Text = month. Calendar 1. Selection. Range. Start. To. String(); }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Menu 로 한다 속성 Menu. Strip 컨트롤 tool. Strip. Menu. Item Menu. Strip tool. Strip. Menu. Item 값 Text 새파일(&N) Short. Cut. Keys Ctrl+N Name menu. Item. New Text 열기(&O) Short. Cut. Keys Ctrl+O Name menu. Item. Open Text 닫기(&C) Short. Cut. Keys Ctrl+C Name menu. Item. Close Seperator 구분선 tool. Strip. Menu. Item Text 저장(&S) Short. Cut. Keys Ctrl+S Name menu. Item. Store Text 새이름으로 저장 (&A) Short. Cut. Keys Ctrl+A Name menu. Item. Another tool. Strip. Menu. Item

- 메뉴 항목 새파일의 Click 이벤트 처리기 추가 private void menu. Item. New_Click(object sender,

- 메뉴 항목 새파일의 Click 이벤트 처리기 추가 private void menu. Item. New_Click(object sender, Event. Args e) { Message. Box. Show("파일을 새로 만듭니다. "); } - 메뉴 항목 열기, 닫기, 저장의 의 Click 이벤트 처리기 추가 private void menu. Item. Open_Click(object sender, Event. Args e) { Message. Box. Show("파일을 오픈합니다. "); } private void menu. Item. Close_Click(object sender, Event. Args e) { Message. Box. Show("파일을 닫습니다. "); } private void menu. Item. Store_Click(object sender, Event. Args e) { Message. Box. Show("파일을 저장합니다"); } private void menu. Item. New. Name_Click(object sender, Event. Args e) { Message. Box. Show("새 이름으로 저장합니다"); }

속성 컨트롤 값 값 마우스오른쪽버튼클릭 Context. Menu. Strip 1 Name button 1 최대화(Tool. Strip.

속성 컨트롤 값 값 마우스오른쪽버튼클릭 Context. Menu. Strip 1 Name button 1 최대화(Tool. Strip. Menu. Item 1) Context. Menu. Strip 2 Context. Menu. Strip 3 보통(Tool. Strip. Menu. Item 3) Name list. View 1 Name Context. Menu. Strip 2 View Details 메뉴항목 빨강색 (Tool. Strip. Menu. Item 4) Context. Menu. Strip 1 Context. Menu. Strip Name 메뉴항목 최소화(Tool. Strip. Menu. Item 2) 녹색 (Tool. Strip. Menu. Item 5) 파랑색 (Tool. Strip. Menu. Item 6) Context. Menu. Strip 속성 Text Form Context. Menu. Strip 컨트롤 Name Context. Menu. Strip 3 메뉴항목 큰아이콘 (Tool. Strip. Menu. Item 7) 작은아이콘 (Tool. Strip. Menu. Item 8) 간단히 (Tool. Strip. Menu. Item 9) 자세히 (Tool. Strip. Menu. Item 10) Button List. View

- 3개의 Context. Menu. Strip에 추가한 10개의 메뉴항목에 대한 Click 이벤트처리기 추가 // 폼을

- 3개의 Context. Menu. Strip에 추가한 10개의 메뉴항목에 대한 Click 이벤트처리기 추가 // 폼을 최소화 private void Tool. Strip. Menu. Item 1_Click(object sender, Event. Args { this. Window. State = Form. Window. State. Minimized; } // 폼을 최대화 private void Tool. Strip. Menu. Item 2_Click(object sender, Event. Args { this. Window. State = Form. Window. State. Maximized; } // 폼을 보통으로 private void Tool. Strip. Menu. Item 3_Click(object sender, Event. Args { this. Window. State = Form. Window. State. Normal; } // 버튼의 배경색을 빨강색으로 private void Tool. Strip. Menu. Item 4_Click(object sender, Event. Args { button 1. Back. Color = Color. Red; } // 버튼의 배경색을 녹색으로 private void Tool. Strip. Menu. Item 5_Click(object sender, Event. Args { button 1. Back. Color = Color. Green; } e) e) e)

// 버튼의 배경색을 파랑색으로 private void Tool. Strip. Menu. Item 6_Click(object sender, Event. Args

// 버튼의 배경색을 파랑색으로 private void Tool. Strip. Menu. Item 6_Click(object sender, Event. Args e) { button 1. Back. Color = Color. Blue; } // 리스트뷰의 보기를 큰아이콘으로 private void Tool. Strip. Menu. Item 7_Click(object sender, Event. Args e) { list. View 1. View = View. Large. Icon; } // 리스트뷰의 보기를 작은아이콘으로 private void Tool. Strip. Menu. Item 8_Click(object sender, Event. Args e) { list. View 1. View = View. Small. Icon; } // 리스트뷰의 보기를 간단히로 private void Tool. Strip. Menu. Item 9_Click(object sender, Event. Args e) { list. View 1. View = View. List; } // 리스트뷰의 보기를 자세히로 private void Tool. Strip. Menu. Item 10_Click(object sender, Event. Args e) { list. View 1. View = View. Details; }

속성 컨트롤 Status. Strip 값 Name Status. Strip 1 Show. Image. Tool. Tips true

속성 컨트롤 Status. Strip 값 Name Status. Strip 1 Show. Image. Tool. Tips true Auto. Size True Sizing. Grip true Items Status. Labels tool. Strip. Status. Label 1 Text : 마우스 좌표 Tool. Tip. Text : 마우스의 좌표 표시 tool. Strip. Status. Label 2 Text : 날짜 Tool. Tip. Text : 현재 날짜를 표시 tool. Strip. Status. Label 3 Text : 시간 Tool. Tip. Text : 현재 시간을 표시 Timer Name timer 1 Interval 1000 Enabled true

- 폼에서 마우스가 음직이면 현재의 마우스 좌표를 상태표시줄에 표시하도록 Mouse. Move 이벤트 처리기 작성

- 폼에서 마우스가 음직이면 현재의 마우스 좌표를 상태표시줄에 표시하도록 Mouse. Move 이벤트 처리기 작성 private void Form 1_Mouse. Move(object sender, Mouse. Event. Args e) { tool. Strip. Status. Label 1. Text = String. Format("X : {0}, Y : {1}", e. X, e. Y); } - 타이머의 tick 이벤트 처리기는 상태 표시줄에 현재의 날짜와 시간을 표시 private void timer 1_Tick(object sender, Event. Args e) { Date. Time dt = Date. Time. Now; // 현재 시간을 구함 tool. Strip. Status. Label 2. Text = String. Format("{0}년 {1}월 {2}일", dt. Year, dt. Month, dt. Day); tool. Strip. Status. Label 3. Text = String. Format("{0}시 {1}분 {2}초", dt. Hour, dt. Minute, dt. Second); } - 상태표시줄의 패널에서 Item. Clicked 이벤트가 발생하면 해당 Tool. Strip. Item의 텍스트를 멧지로 갖는 메시지박스를 표시 private void status. Strip 1_Item. Clicked(object sender, Tool. Strip. Item. Clicked. Event. Args e) { Message. Box. Show(e. Clicked. Item. Text); }

속성 컨트롤 Menu. Strip 값 Name Menu. Strip 1 파일 (Tool. Strip. Menu. Item.

속성 컨트롤 Menu. Strip 값 Name Menu. Strip 1 파일 (Tool. Strip. Menu. Item. File) 파일메뉴 1(Menuitem 1) 파일메뉴 2(Menu. Item 2) 파일메뉴 3(Menu. Item 3) Tools. Trip 1 Tool. Strip 2 보기 (Tool. Strip. Menu. Item. View) 보기메뉴 1(Menu. Item 4) Name tool. Strip 1 Show. ITem. Tool. Tips true Items tool. Strip. Button 1 Image : CDROM 01, Tool. Tip. Text : 파일메뉴 1 tool. Strip. Button 2 Image : CDROM 02, Tool. Tip. Text : 파일메뉴 2 tool. Strip. Button 3 Image : CDROM 03, Tool. Tip. Text : 파일메뉴 3 보기메뉴 2(Menu. Item 5) Name tool. Strip 2 Show. ITem. Tool. Tips true Items tool. Strip. Button 4 Image : FACE 01, Tool. Tip. Text : 보기메뉴 1 tool. Strip. Button 5 Image : FACE 02, Tool. Tip. Text : 보기메뉴 2

- menu. STrip의 5개 메뉴 항목에 대한 Click 이벤트 처리기 작성 private void menu.

- menu. STrip의 5개 메뉴 항목에 대한 Click 이벤트 처리기 작성 private void menu. Item 1_Click(object sender, Event. Args e) { Message. Box. Show("파일 메뉴 1을 수행합니다"); } private void menu. Item 2_Click(object sender, Event. Args e) { Message. Box. Show("파일 메뉴 2를 수행합니다"); } private void menu. Item 3_Click(object sender, Event. Args e) { Message. Box. Show("파일 메뉴 3을 수행합니다"); } private void menu. Item 4_Click(object sender, Event. Args e) { Message. Box. Show("보기 메뉴 1을 수행합니다"); } private void menu. Item 5_Click(object sender, Event. Args e) { Message. Box. Show("보기 메뉴 2를 수행합니다. "); }

- Tool. Strip의 버튼에 대한 [Item. Clicked] 이벤트 처리기를 추가 - tool. Strip 1의

- Tool. Strip의 버튼에 대한 [Item. Clicked] 이벤트 처리기를 추가 - tool. Strip 1의 3개 버튼은 각가 파일 메뉴에서 만들어 준 3개의 메뉴 항목을 대신 수행 - tool. Strip 2의 2개 버튼은 각각 보기 메뉴에서 만들어 준 2개의 메뉴 항목을 대신 수행 private void tool. Strip 1_Item. Clicked(object sender, Tool. Strip. Item. Clicked. Event. Args e) { switch (tool. Strip 1. Items. Index. Of(e. Clicked. Item)) { case 0: Menu. Item 1_Click(sender, e); break; case 1: Menu. Item 2_Click(sender, e); break; case 2: Menu. Item 3_Click(sender, e); break; } } private void tool. Strip 2_Item. Clicked(object sender, Tool. Strip. Item. Clicked. Event. Args e) { switch (tool. Strip 2. Items. Index. Of(e. Clicked. Item)) { case 0: Menu. Item 4_Click(sender, e); break; case 1: Menu. Item 5_Click(sender, e); break; } }

- 새로 추가된 Dialog. Form 대화상자에 Button과 도명, 도청소재지, 인텍스를 입력하기 위한 Text. Box와

- 새로 추가된 Dialog. Form 대화상자에 Button과 도명, 도청소재지, 인텍스를 입력하기 위한 Text. Box와 Label을 배치하고 속성 설정 컨트롤 Label 1 Label 2 Label 3 Text. Box 1 Text. Box 2 Text. Box 3 Button 속성 값 Name label 1 Text 도명 Name label 2 Text 도청소재지 Name label 3 Text 인덱스 Name text. Box 1 Text “” Name text. Box 2 Text “” Name text. Box 3 Text “” Name button 1 Text 확인 - Form 1에서 Dialog. Form의 text. Box들을 접근할 수 있게 하기 위해 text. Box 의 Modifer 속성을 public 으로 설정한다

- Form 1의 대화상자로 입력 버튼의 Click 이벤트 처리기 추가 private void button 2_Click(object

- Form 1의 대화상자로 입력 버튼의 Click 이벤트 처리기 추가 private void button 2_Click(object sender, Event. Args e) { Dialog. Form input = new Dialog. Form(); // 대화상자 객체 생성 input. Show. Dialog(); // 모달 대화상자로 수행 // 모달 대화상자에서 입력한 데이터를 사용하여 List. View. Item 객체 생성 List. View. Item item = new List. View. Item(input. text. Box 1. Text, int. Parse(input. text. Box 3. Text)); item. Sub. Items. Add(input. text. Box 2. Text); list. View 1. Items. Add(item); // 리스트뷰에 새 항목을 추가 } - Dialog. Form의 확인 버튼에 대한 Click 이벤트 처리기 추가 private void button 1_Click(object sender, Event. Args e) { Close(); }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Common. Dlg 로 한다 컨트롤 속성 Menu. Strip 값 Name menu. Strip 1 메뉴항목 컬러(menuitem. Color) 파일(menuitem. Color) 폰트(menuitem. Font) Text. Box Name text. Box 1 Text 공통대화상자 Multi. Line true Color. Dialog Name Color. Dialoag 1 Font. Dialog Name Font. Dialog 1 Open. File. Dialog Name Open. File. Dialog 1 Text. Box Menu. Strip Color. Dialog Font. Dialog Open. File. Dialog

- 메뉴항목에 대한 Click 이벤트 처리기 추가 // 색 대화상자는 텍스트박스의 전경색을 변경시키는 용도로

- 메뉴항목에 대한 Click 이벤트 처리기 추가 // 색 대화상자는 텍스트박스의 전경색을 변경시키는 용도로 사용 private void menu. Item. Color_Click(object sender, Event. Args e) { color. Dialog 1. Show. Dialog(); // 대화상자 수행 text. Box 1. Fore. Color = color. Dialog 1. Color; // 텍스트박스의 펜 색 변경 // Color. Dialog dlg = new Color. Dialog(); // dlg. Show. Dialog(); // text. Box 1. Fore. Color = dlg. Color; } // 열기 대화상자에서 선택한 파일의 경로명을 텍스트박스에 출력 private void menu. Item. File_Click(object sender, Event. Args e) { open. File. Dialog 1. Show. Dialog(); // 대화상자 수행 string str = open. File. Dialog 1. File. Name + " 파일을 선택"; text. Box 1. Text = str; // 텍스트박스에 선택한 파일의 경로 표시 } // 텍스트박스의 폰트를 폰트 대화상자에서 선택한 폰트로 설정 private void menu. Item. Font_Click(object sender, Event. Args e) { font. Dialog 1. Show. Dialog(); // 대화상자 수행 text. Box 1. Font = font. Dialog 1. Font; // 텍스트박스의 폰트 변경 }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Web. Browser 로 한다 컨트롤 Label Combo. Box Button 1 Button 2 Button 3 Button 4 Web. Browser Button Web. Browser Form 1 Combo. Box 속성 값 Name label 1 Text 주소 Name combo. Box 1 Anchor Top, Bottom, Left, Right Name button 1 Text 연결 Anchor Top, Right Name button 2 Text 뒤로 Name button 3 Text 홈 Name button 4 Text 앞으로 Name web. Browser 1 Anchor Top, Bottom, Left, Right Name Form 1 Text 웹브라우저

- 연결 버튼에 대한 Click 이벤트 처리기 추가 private void btn_connected_Click(object sender, Event. Args

- 연결 버튼에 대한 Click 이벤트 처리기 추가 private void btn_connected_Click(object sender, Event. Args e) { web. Browser 1. Navigate(combo. Box 1. Text); } - 뒤로 버튼에 대한 Click 이벤트 처리기 추가 private void btn_connected_Click(object sender, Event. Args e) { web. Browser 1. Go. Back(); } - 홈 버튼에 대한 Click 이벤트 처리기 추가 private void btn_connected_Click(object sender, Event. Args e) { web. Browser 1. Go. Home(); } - 앞으로 버튼에 대한 Click 이벤트 처리기 추가 private void btn_connected_Click(object sender, Event. Args e) { web. Browser 1. Go. Forward(); }

- 탐색 버튼에 대한 Click 이벤트 처리기 추가 private void btn_connected_Click(object sender, Event. Args

- 탐색 버튼에 대한 Click 이벤트 처리기 추가 private void btn_connected_Click(object sender, Event. Args e) { web. Browser 1. Go. Search(); } - 콤보박스에서 엔터키를 입력하면 현재 콤보박스에 입력된 URL 로 이동시키 고 콤보박스에 입력된 URL을 콤보박스의 맨 앞에 삽입 private void txt_url_Key. Down(object sender, Key. Event. Args e) { if(e. Key. Code == Keys. Enter) { web. Browser 1. Navigate(combo. Box 1. Text); combo. Box 1. Items. Insert(0, combo. Box 1. . Text); } } - 콤보박스에서 어떤 항목을 선택하면 선택된 항목의 URL 로 이동 private void txt_url_Selected. Index. Changed(object sender, Event. Args e) { web. Browser 1. Navigate(combo. Box 1. Selected. Item. To. String()); }

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고,

- 솔루션 탐색기의 솔루션 ’Window. Form’ 에서 마우스 오른쪽 버튼을 눌러 새 프로젝트를 추가하고, 프로젝트 이름을 Active. X 로 한다 컨트롤 Menu. Strip 속성 값 Name menu. Strip 1 메뉴항목 열기(menu. Item. Open) 종료(menu. Item. Exit) Open. File. Dialog Menu. Strip Open. File. Dialog Name open. File. Dialog 1 Windowss Media. Player Name ax. Windows. Media. Player 1 Windows Media. Player

- 열기메뉴와 종료 메뉴항목에 대한 Click 이벤트 처리기 추가 private void menu. Item. Open_Click(object

- 열기메뉴와 종료 메뉴항목에 대한 Click 이벤트 처리기 추가 private void menu. Item. Open_Click(object sender, Event. Args e) { // 필터 속성 설정 open. File. Dialog 1. Filter = "동영상파일(*. mpg; *. mpeg; *. avi; *. divx; )|*. mpg; *. mpeg; *. avi; *. divx"; // 파일 선택 후 [확인]버튼을 클릭한 경우 if(open. File. Dialog 1. Show. Dialog() == Dialog. Result. OK) { ax. Windows. Media. Player 1. URL = open. File. Dialog 1. File. Name; ax. Windows. Media. Player 1. Ctlcontrols. play(); // 선택한 파일을 플레이 } } private void menu. Item. Exit_Click(object sender, Event. Args e) { Close(); //프로그램 종료 }