반응형
C# Mouse 이벤트를 이용하여 C#폼에서 그림을 그리는 예제입니다.
마우스 왼쪽 클릭시 선 그리기, 마우스 오른족 클릭시 원 그리기
메뉴추가 :
FrmMain - 샘플 -MouseMove, MouseDown
FrmMouseEvent 속성 |
마우스 - MouseDown : 마우스 포인터가 구성요소위에 있을 때 이벤트 - MouseMove : 마우스 포인터를 구성요소위로 이동 할 때 이벤트 모양 - Print : 컨트롤을 다시 그릴 때 발생하는 이벤트 |
FrmMouseEvent.cs |
using System.Collections; //네임스페이스 추가 namespace WinFrmMain.Sample { public partial class FrmMouseEvent : Form { private ArrayList al; private Point p; //좌표 public FrmMouseEvent() { InitializeComponent(); al = new ArrayList(); } private void FrmMouseEvent_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { //그래픽 객체 생성 Graphics g = CreateGraphics(); //원 그리기 g.DrawEllipse(Pens.Red, e.X, e.Y, 10, 10); //객체 해제 g.Dispose(); } p.X = e.X; p.Y = e.Y; } private void FrmMouseEvent_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Graphics g = this.CreateGraphics(); g.DrawLine(Pens.Blue, p.X, p.Y, e.X, e.Y); //좌표값 보관 al.Add(Rectangle.FromLTRB(p.X, p.Y, e.X, e.Y)); p.X = e.X; p.Y = e.Y; g.Dispose(); } } private void FrmMouseEvent_Paint(object sender, PaintEventArgs e) { //지정된 좌표값 다시 그리기 foreach (Rectangle r in al) { e.Graphics.DrawLine( Pens.Blue, r.Left, r.Top, r.Right, r.Bottom); } } } } |
결과화면 |
반응형
'C#' 카테고리의 다른 글
31.C#_WinForm - C# 주소록 (1) (1) | 2009.09.03 |
---|---|
30.C#_WinForm - 폼 클로우징 이벤트 (C# Closing Event) (2) | 2009.09.02 |
28.C#_WinForm - 키 다운 이벤트 ( KeyDown Event) (2) | 2009.09.02 |
91.C# - 스레드(Thread) 와 프로세스(Process) (0) | 2009.09.02 |
90.C# - 전역어셈블리캐시 ( Assembly ) (0) | 2009.09.02 |
Comments