[C# 윈폼] PictureBox 컨트롤 더블클릭(DoubleClick) 시 이미지 확대 하기
- C#/Windows Form
- 2020. 3. 4. 00:00
안녕하세요.
오늘은 C# 윈폼에서 PictureBox 컨트롤을 더블클릭 했을 때, 확대된 이미지가 나오게끔 하는 방법에 대해서 알려 드리려고 합니다.
해당 기능을 익히시면, 향후에 C#에서 이미지를 다루실 때 유용하게 사용하실 수 있을 거라 생각합니다.
그럼 바로 예제를 통해서 어떻게 기능을 구현하는지 알아 보도록 하겠습니다.
우선 윈폼 빈 프로젝트를 하나 생성해 주시기 바랍니다.
그리고, 아래와 같이 PictureBox 컨트롤과 Button 컨트롤을 아래와 같이 배치시켜 주시기 바랍니다.
윈폼 빈 프로젝트 생성 및 컨트롤 배치
여기까지 잘 따라하셨나요?
이제 그러면 여기서 Zoom이라는 폼을 하나 더 생성을 할거에요.
ZoomForm 폼 생성하기
내가 만든 솔루션에 마우스를 가져다 대시고, 우 클릭을 하셔서 “추가” -> “새 항목” 을 클릭 하셔서 윈폼 프로젝트를 하나 더 추가해 주시기 바랍니다.
저 같은 경우에는 ZoomForm 이라고 이름을 짓겠습니다.
위와 같이 ZoomForm이라는 폼 하나를 더 생성 하였습니다.
그리고 생성된 ZoomForm에 PictureBox 컨트롤을 배치해 주시고, Dock 설정을 Fill로 해주시기 바랍니다.
ZoomForm 에 PictureBox 컨트롤 배치
위와 같이 잘 안보이실 수도 있지만..현재 PictureBox 컨트롤을 Dock – Fill 상태로 배치시킨 모습입니다.
그리고 ZoomForm 속성에서 WindowState 상태를 “Maximized” 상태로 변경해 주시기 바랍니다.
이제 ZoomForm 소스코드를 작성해 보도록 할게요.
ZoomForm 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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 PictureBoxTest { public partial class ZoomForm : Form { public string file = string.Empty;
public ZoomForm() { InitializeComponent();
this.Shown += ZoomForm_Shown; }
/// <summary> /// ZoomForm Shown 이벤트 핸들러 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ZoomForm_Shown(object sender, EventArgs e) { uiPb_Zoom.Image = Image.FromFile(file); uiPb_Zoom.SizeMode = PictureBoxSizeMode.Zoom; } } }
|
여기까지 잘 따라오셨나요?ㅎㅎ
큰 어렴움이 없기 때문에, 천천히 따라 오시길 바랍니다.
여기까지 잘 따라하셨다면, 이제 다음으로 처음에 만들었던 Main 폼의 소스코드를 작성해 보도록 하겠습니다.
Main폼에서는 이제 “Show Image” 버튼을 클릭했을 때, 먼저 PictureBox 컨트롤에 이미지가 들어가게 되고, 그 다음으로 PcitureBox 컨트롤을 마우스로 더블클릭 했을 때, ZoomForm을 호출 하여 확대 된 이미지가 보여지게 끔 소스코드를 작성해 볼게요.
MainForm 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
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 PictureBoxTest { public partial class Form1 : Form { public string imagePath = string.Empty;
public Form1() { InitializeComponent();
uiBtn_ShowImage.Click += uiBtn_ShowImage_Click; }
/// <summary> /// Show Image 버튼 클릭 이벤트 핸들러 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void uiBtn_ShowImage_Click(object sender, EventArgs e) { imagePath = @"C:\Users\winforsys\Desktop\test.png";
//PictureBox 컨트롤에 넣을 이미지 경로\이미지이름 추가 Image img = Image.FromFile(imagePath); //PictureBox 컨트롤에 이미지 넣기 uiPb_Image.BackColor = Color.DimGray; uiPb_Image.SizeMode = PictureBoxSizeMode.Zoom; uiPb_Image.Image = img.GetThumbnailImage(150, 150, null, IntPtr.Zero);
//PictureBox 컨트롤 더블클릭 이벤트 선언 uiPb_Image.DoubleClick += uiPb_Image_DoubleClick; }
/// <summary> /// PictureBox 컨트롤 더블클릭 이벤트 핸들러 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void uiPb_Image_DoubleClick(object sender, EventArgs e) { ZoomForm zoomFrm = new ZoomForm(); zoomFrm.file = imagePath;
zoomFrm.ShowDialog(); } } }
|
실행 결과
위와 같이 이미지를 더블클릭 했을 때, ZoomForm이 제대로 호출 되면서 확대된 이미지가 제대로 나온 것을 확인 하실 수 있습니다.
감사합니다.^^
'C# > Windows Form' 카테고리의 다른 글
[C# 윈폼] C# 윈도우 어플리케이션으로 StopWatch(스톱워치) 만들기 (0) | 2020.04.06 |
---|---|
[C# 윈폼] C# 윈폼 이미지 불러와서 보여주기(Image Viewer 만들기) (8) | 2020.03.08 |
[C# 윈폼] 윈폼 폼 닫기 이벤트 (Form Closed Event) 선언하는 방법 (0) | 2020.02.14 |
[C# 윈폼] 윈폼 트레이 아이콘(Tray Icon) 표시 하는 방법 (0) | 2020.02.09 |
[C# 윈폼] 윈폼 컨트롤 static 객체로 생성하여 객체 상태 유지하기 (0) | 2020.01.18 |
이 글을 공유하기