[C#] 그림판 만들기 - 마우스 이벤트, 메뉴 이벤트, 툴바 이벤트
·
Programming Languages/C#
[실행화면] [FORM] - 솔루선 탐색기의 Form.resx파일 더블클릭 후 리소스 추가 - > 새이미지 -> png이미지 클릭 후 직선, 사각형, 원, 검정색사각형, 빨간색사각형, 초록색사각형, 파란색 사각형 그리기 - 툴바 버튼들의 속성에서 Image에 만들어논 이미지 파일 맞게 지정하고, Text수정. 여기서 쓰이는 Text는 실행후 마우스를 툴바 버튼에 가까이 가면 뜸 [Form.resx] [코드] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System..
[C#] pictureBox 경마
·
Programming Languages/C#
[Form] [실행화면] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 말 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Random r = new Random(); private void timer1_Tick(object sender, EventArgs e) ..
[C#] pictureBox 시계만들기
·
Programming Languages/C#
[Form1] pictureBox - 속성의 sizeMode를 stretchImage, lmage를 리소스 컨텍스트 로컬 리소스로 가져옴 timer동작할려면 enabled true로 변경, interval를 1초로 하기 위해서 100을 1000으로 변경 timer의 이벤트 tick줌 [실행화면] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 시계 { pub..
[C#] 도형(선, 사각형, 원)
·
Programming Languages/C#
▶ Graphics 클래스의 주요 메소드 DrawArc : 좌표, 너비, 높이의 쌍으로 지정된 타원의 부분을 나타내는 호를 그림 DrawBezier : 4개의 Poin 구조체로 정의되는 3차원 곡선 스플라인을 그림 DrawCurve : Point 구조체의 지정된 배열을 따라 카디널 스플라인을 그림 DrawEllipse : 좌표, 높이, 너비의 쌍으로 지정된 경계 사각형에 의해 정의되는 타원을 그림 DrawIcon : 지정된 아이콘에 의해 나타나는 이미지를 지정된 좌표에 그림 DrawImage : 지정된 이미지를 지정된 위치에 그림 DrawLine : 좌표에 의해 지정된 2개의 점을 연결하는 선을 그림 DrawPie : 좌표, 너비, 높이 및 2개의 방사형 선에 의해 지정된 타원으로 정의된 부채꼴 모양을 ..
[C#] 그래픽의 GDI+, 펜과 브러시
·
Programming Languages/C#
▶ GDI = 윈도우에서 그림을 그리는 도구 윈도우 운영체제에는 각 벤더사의 디바이스 드라이버의 정보를 얻어와서 그래픽 카드의 종류애 상관없이 동일한 형태의 그래픽 출력을 제공 그래픽 디바이스의 독립적인 기능을 제공해주는 인터페이스를 GDI라고 함 -> 윈도우 운영체제에서 제공하느 그래픽 출력장치 인터페이스 gdi.dll라이브러리 형태로 제공 ▶GDI+ GDI의 기능을 확장한 버전 System.Drawing 네임스페이스가 GDI+라이브러리 * GDI+ 주요 클래스 Pen : 선 스타일과 색상 등을 결정 Brush : 삼각형, 사각형, 원 등의 내부를 채우는 데 사용 Graphics : 텍스트나 이미지 등을 출력할 때 사용 Image : Bitmap, Icon, Cursor 등 하위 클래스에 기능을 제공하..
[C#] 트레이아이콘
·
Programming Languages/C#
윈도우 프로그램이 실행되면 화면에 보여야 하지만, 동작하더라도 화면에 보일 필요가 없는 경우 ex) 백신 프로그램 : 늘 바이러스에 대한 감시 동작을 하고 있어야 함. 동작하고 있으므로 사용자에게 여러 가지 알림을 줄 수도 있지만 화면에 보일 필요는 없음 컴퓨터 화면 아래쪽 작업 표시줄의 가장 오른쪽에 트레이아이콘 볼 수 있음 트레이 아이콘을 구현하기 위해 C#에서 제공하는 컨트롤은 NotifyIcon [실습] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Syst..
[C#] 메뉴, 대화상자
·
Programming Languages/C#
☞ 메뉴 메뉴는 MenuStrip이라는 이름의 컨트롤로 제공. [도구상자]에서 메뉴 항목에 있는 [MenuStrip]을 디자이너에 배치 MenuStrip 컨트롤은 폼의 메뉴 구조에 대한 컨테이너를 나타냄 . 메뉴 구조에서 개별 메뉴를 하나씩 설정할 수 있는데, 각 메뉴는 ToolStripMenuItem개체로 추가됨. 하위 메뉴 추가가 가능하고 각 메뉴의 항목을 MenuItem, ComboBox, TextBox 중에 하나를 선택하여 추가할 수도 있음 ☞ MenuStrip 속성 및 메소드 ContextMenuStrip : ContextMenuStrip이 선택되어 있는지 여부를 나타내거나 설정 Enabled : 컨트롤 사용 여부를 설정 Items : MenuStrip에 등록된 모든 항목을 가져옴 Getltem..
[C#] 이벤트
·
Programming Languages/C#
☞ 이벤트 : 특정 상황이 발생했을 때 알리고자 하는 용도 - (호출을 의미 +데이터) - 이벤트를 발생시키는 클래스를 게시자 - 이벤트를받거나 처리하는 클래스를 구독자 - 델리게이트 기반(메서드 호출) - 이벤트 메서드 안에서만 사용 가능 ☞ 이벤트 핸들러(이벤트 처리기) 이벤트의 신호를 포착한 후 프로그램에 전달하여 이벤트에 대한 처리를 해야 한다. 이렇게 이벤트 발생 시 이벤트를 처리하는 기능을 이벤트 핸들러 또는 이벤트 처리기라고 한다. - 이벤트처리기는 그냥 일반 메소드 - 사용자가 인위적으로 호출할 수 없고, 이벤트 발생 시 자동으로 호출되어 기능을 수행 ☞ 이벤트 선언 형식 [접근지정자] event 델리게이트타입 이벤트이름; ex) delegate void DelegateType(string..
[C#] 콜백함수
·
Programming Languages/C#
☞ 콜백함수 : 반대로 호출 - 콜백은 주로 이벤트 기반 프로그래밍에서 사용, 이벤트가 발생되었을 떄 내부적으로 콜백 메소드에 의해 처리 ☞ 콜백메소드 사용 - 대리할 메서드와 동일한 타입을 델리게이트를 선언 - [접근지정자] delegate return형 델리게이트타입(매개변수); - 콜백메서드 정의 후 메서드 안에서 델리게이트 호출. 이때 위에서 선언한 델리게이트 타입을 인자로 넣어서 선언 ex) delegate void CalcDelegate (int x, int y); void CallBack(int x, int y, CalcDelegate dele){ dele(x, y); } void Plus(int x, int y){...} void Minus(int x, int y){...} [예제] usi..
[C#] 델리게이트, 멀티델리게이트
·
Programming Languages/C#
☞ 델리게이트 : 권한, 임무들을 위임하다, 대리자, 델리게이트의 본질은 메서드 참조형 - 프로그래밍에서 대리자 : 메소드를 직접 호출하지않고 델리게이트를 이용해서 지정 메소드를 대신 호출해 주는 기능 ☞ 델리게이트 사용방법 1. 선언 - 접근 한정자 : 생략가능 주로 public [접근 한정자] delegate 데이터형 이름(인수목록); ex) delegate int TypeF(int a, int b); - 메소드와 동일한 전달인자와 반환형으로 델리게이트 타입을 선언 맨 앞에 delegate키워드를 붙이고 데이터형과 이름을 작성한 뒤 인수목록을 똑같이 맞춰주면 됨 2. 델리게이트 사용 - 선언한 델리게이트 타입으로 델리게이트 변수 생성, 생성한 델리게이트 변수에 해당 메소드를 참조시킴 - 델리게이트도 ..
[C#] 직렬화
·
Programming Languages/C#
☞ 직렬화 = 객체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송하기 위해 객체를 byte 스트림으로 변환하는 프로세스 객체 상태를 메모리나 영구 저장 가능한 0과 1의 순서로 바꾸는 것 -> byte 스트림으로 변환하는 이유 : 객체를 다른 프로그램에 그대로 전달하는 것은 문제가 되므로 일정한 형식의 데이터의 기본 단위인 byte 형태로 변환 닷넷에서는 직렬화를 사용해 프로그램에서 사용하는 객체를 파일에 저장하기 위해 byte 스트림으로 변환시키고, 역직렬화를 사용해 파일로부터 읽은 byte스트림을 객체로 변환시키는 기능을 제공 객체 직렬화는 SerializableAttribute클래스를 통해 구현 직렬화하고자 하는 부분에 [Serializable]을 명시, 직렬화하고 싶지 않은 부분에 NonSe..