상위 목록: 하위 목록: 작성 날짜: 읽는 데 7 분 소요

프로젝트 구성

도구상자에서 SaveFileDialog, OpenFileDialog, PictureBox, MenuStripForm1에 생성합니다.

위 이미지와 같이 배치합니다.



도구 상자 속성

속성을 다음과 같이 설정합니다.

  1. PictureBox
    • Size : 200, 200
    • SizeMode : StretchImage
  2. MenuStrip
    • Text : 파일
    • Text : 열기
    • Text : 저장
  • Tip : MenuStrip을 이용하여 프로그램의 메뉴바를 만들 수 있습니다. Button과 동일한 기능을 낼 수 있습니다.

MenuStrip에서 열기 메뉴를 더블 클릭하여 이미지 파일을 불러올 수 있게 합니다.



ToolStripMenuItem 1 이벤트 적용

private void 열기ToolStripMenuItem_Click(object sender, EventArgs e)
{
  if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  {
    pictureBox1.Load(openFileDialog1.FileName);
  }
}


세부 코드

openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK

openFileDialog에서 OK버튼을 누를경우 실행됩니다.


pictureBox1.Load(openFileDialog1.FileName);

pictureBox1에 openFileDialog를 통해 불러온 파일 이름으로 불러옵니다.


리소스 적용

위와 같이 이미지가 불러오게 됩니다.

다음으로 저장 메뉴를 더블클릭합니다.


ToolStripMenuItem 2 이벤트 적용

private void 저장ToolStripMenuItem_Click(object sender, EventArgs e)
{
    DialogResult result = saveFileDialog1.ShowDialog();
    if (result == DialogResult.OK)
    {
        pictureBox1.Image.Save(saveFileDialog1.FileName);
    }

}

ShowDialog()를 변수형태로 저장할 수 있으며 이미지를 불러오는 방식과 동일하게 이미지를 저장할 수 있습니다.



전체 코드

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 Project
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 열기ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                pictureBox1.Load(openFileDialog1.FileName);
            }
        }

        private void 저장ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult result = saveFileDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                pictureBox1.Image.Save(saveFileDialog1.FileName);
            }
        }
    }
}

댓글 남기기