[CS] 메모4. PictureBox & Graphics
임대희님의 강의 6강
-
PictureBox의 SizeMode 값 뜻
- Normal : 이미지 크기에 맞춰 PictureBox에 출력
- StretchImage : Image PictureBox 크기에 맞춰 늘림
- AutoSize : PictureBox의 크기를 Image 크기에 맞춤
- CenterImage : PictureBox 중간에 Image 를 배치
- Zoom : Image의 크기를 PictureBox에 비율에 맞게 늘림
-
이미지 들고올때
- 로컬리소스 : 해당경로의 파일을 들고옴. 경로가 다르면 표시안됨
- 프로젝트 리소스 : 리소스폴더에 복사되서 타PC에서 작업해도 표시됨.
-
PictureBox 이벤트 적용.
- 해당 pictureBox의 속성-이벤트 에서 원하는 이벤트를 활성화시킬 수 있다.
- 해당 이벤트에 직접 이름을 정해서 작성한다.
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 test4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
pictureBox2.Image = null;
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
pictureBox2.Image = pictureBox1.Image;
}
private void pictureBox2_Mouse(object sender, MouseEventArgs e)
{
// 마우스 클릭이벤트 발생시-> 오른쪽 버튼 이벤트이면.
if(e.Button == System.Windows.Forms.MouseButtons.Right)
{
// grp라는 그래픽스에 pictureBox2에 생성시킴.
Graphics grp = pictureBox2.CreateGraphics();
// pen을 생성시켜 색상 선택
Pen pen = new Pen(Color.SteelBlue);
// DrawLine을 이용해서 직선을 그림
// grp.DrawLine(pen, X좌표 시작점, Y좌표 시작점, X좌표 도착점, Y좌표 도착점);
grp.DrawLine(pen, e.X - 3, e.Y - 10, e.X + 6, e.Y); // ↘
grp.DrawLine(pen, e.X - 14, e.Y, e.X + 6, e.Y); // --→
grp.DrawLine(pen, e.X - 3, e.Y + 10, e.X + 6, e.Y); // ↗
}
}
private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
{
// 마우스 클릭이벤트 발생시-> 왼쪽 버튼 이벤트이면.
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
Graphics grp = pictureBox2.CreateGraphics();
Pen pen = new Pen(Color.SteelBlue);
grp.DrawLine(pen, e.X - 3, e.Y - 10, e.X + 6, e.Y); // ↘
grp.DrawLine(pen, e.X - 14, e.Y, e.X + 6, e.Y); // --→
grp.DrawLine(pen, e.X - 3, e.Y + 10, e.X + 6, e.Y); // ↗
}
}
}
}
PictureBox의 SizeMode 값 뜻
- Normal : 이미지 크기에 맞춰 PictureBox에 출력
- StretchImage : Image PictureBox 크기에 맞춰 늘림
- AutoSize : PictureBox의 크기를 Image 크기에 맞춤
- CenterImage : PictureBox 중간에 Image 를 배치
- Zoom : Image의 크기를 PictureBox에 비율에 맞게 늘림
이미지 들고올때
- 로컬리소스 : 해당경로의 파일을 들고옴. 경로가 다르면 표시안됨
- 프로젝트 리소스 : 리소스폴더에 복사되서 타PC에서 작업해도 표시됨.
PictureBox 이벤트 적용.
- 해당 pictureBox의 속성-이벤트 에서 원하는 이벤트를 활성화시킬 수 있다.
- 해당 이벤트에 직접 이름을 정해서 작성한다.
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 test4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
pictureBox2.Image = null;
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
pictureBox2.Image = pictureBox1.Image;
}
private void pictureBox2_Mouse(object sender, MouseEventArgs e)
{
// 마우스 클릭이벤트 발생시-> 오른쪽 버튼 이벤트이면.
if(e.Button == System.Windows.Forms.MouseButtons.Right)
{
// grp라는 그래픽스에 pictureBox2에 생성시킴.
Graphics grp = pictureBox2.CreateGraphics();
// pen을 생성시켜 색상 선택
Pen pen = new Pen(Color.SteelBlue);
// DrawLine을 이용해서 직선을 그림
// grp.DrawLine(pen, X좌표 시작점, Y좌표 시작점, X좌표 도착점, Y좌표 도착점);
grp.DrawLine(pen, e.X - 3, e.Y - 10, e.X + 6, e.Y); // ↘
grp.DrawLine(pen, e.X - 14, e.Y, e.X + 6, e.Y); // --→
grp.DrawLine(pen, e.X - 3, e.Y + 10, e.X + 6, e.Y); // ↗
}
}
private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
{
// 마우스 클릭이벤트 발생시-> 왼쪽 버튼 이벤트이면.
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
Graphics grp = pictureBox2.CreateGraphics();
Pen pen = new Pen(Color.SteelBlue);
grp.DrawLine(pen, e.X - 3, e.Y - 10, e.X + 6, e.Y); // ↘
grp.DrawLine(pen, e.X - 14, e.Y, e.X + 6, e.Y); // --→
grp.DrawLine(pen, e.X - 3, e.Y + 10, e.X + 6, e.Y); // ↗
}
}
}
}
Author And Source
이 문제에 관하여([CS] 메모4. PictureBox & Graphics), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@psh4204/CS-메모5.-PictureBox-Graphics저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)