개발/C# 61

[팁] 델리게이트, 폼간 데이터 공유(주거니 받거니)

C# 델리게이트를 어떻게 사용해야 하는지 예제를 통해서 살펴보자.그동안 델레게이트를 어떻게 처리해야 할지 개념이 잡힐 듯 잡힐 듯 하면서도 잘 잡히지 않았는데 구글링하다가 발견한 예제를 통해서 폼간에 값을 어떻게 전달해야 하는지 확실하게 감을 좀 잡은거 같다. 1. 메인 폼(MainForm)에서 자식폼으로 값을 전달해야 할 경우2. 자식폼에서 메인폼으로 값을 전달해야 할 경우 세가지 경우만 알면 폼간에 값을 넘기는 것에 대한 이해는 다 했다고 볼 수 있다.ㅇ 델리게이트(delegate)는 Class 밖에 선언한다.ㅇ 델리게이트 타입과 실행메서드 타입은 동일 해야 한다. ㅇ 이벤트는 값을 전달하는 쪽에서 선언해야 한다. namespace DelegatesDemo { public delegate void D..

개발/C# 2018.04.16

[팁] 이벤트, 폼간 데이터 공유

“이벤트는 발행자 – 구독자 모델입니다” 안녕하세요. 박종명입니다. 닷넷 열일곱 번째 강좌를 진행하도록 하겠습니다지난 강좌에서 델리게이트에 대해 알아보았는데요. 이번 강좌 주제인 이벤트(Event)는 델리게이트와 깊은(?) 연관이 있습니다 그럼 자세히 알아보도록 하겠습니다 일상적으로 이벤트(Event)라 함은 ‘행사’ 라는 의미에 가깝습니다그러나 프로그래밍에서의 이벤트는 어떠한 사건, 특정 상황(의 발생)이라는 의미가 강합니다 예를 들어 폼(Form) 객체의 버턴이 클릭되었다던지 객체의 상태가 변경되었다던지 하는 프로그램의 실행 중 발생하는 사건을 이벤트라 하며 이러한 이벤트를 다른 객체에서 통지(Notify)받아 적절히 처리하는 형태를 이벤트 기반 프로그래밍 모델이라 할 수 있겠습니다. 닷넷은 이벤트 ..

개발/C# 2018.04.16

C# Resource 이미지 로드

C# Resources 에 이미지 로드하기 Load image from resources in C# 하는 방법입니다. 쉽게 프로젝트를 관리할때 Resource 폴더에 이미지를 넣어둡니다. 이렇게 넣어둔 파일은 Bmp 함수에서 로드할때는 경로를 지정합니다. 상대경로로 지정을 하여 사용하게 되면 debug 모드에서는 정상적으로 사용할 수 있습니다. 하지만 ClickOnce나 Setup로 배포파일을 만들게 되면 상대경로가 달라지게 되어 이미지를 로드 못하는 오류가 발생합니다. 예를 들어 개발자가 프로젝트를 개발할때의 실행파일 경로는 debug 폴더안에 exe파일이 존재하고 실제 필요한 이미지는 그 상위 프로젝트 폴더의 Resource 폴더에 들어 있는 경우입니다. 이런 경우 ..\..\Resource 경로의 ..

개발/C# 2018.04.03

[이미지] C# Picture 박스에서 다른 Picture 박스로 이미지 끌어다 놓기

private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { var img = pictureBox1.Image; if (img == null) return; if (DoDragDrop(img, DragDropEffects.Move) == DragDropEffects.Move) { pictureBox1.Image = null; } } public Form1() { InitializeComponent(); pictureBox1.MouseDown += pictureBox1_MouseDown; pictureBox2.AllowDrop = true; pictureBox2.DragEnter += pictureBox2_DragEnter; pictureBo..

개발/C# 2018.02.13

[이미지] C# Picturebox 내에서 이미지 움직이기

picture 박스보다 큰 이미지를 Picture 박스에 이미지를 불러온뒤 움직이기 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 MoveImageOnPictrueBox{ public partial class Form1 : Form { private bool IsClicked = false; private Bitmap bm; private Point recLoc; pri..

개발/C# 2018.02.07

[이미지] C# 이미지위에 다른이미지 올려 마우스로 이동하기

Let the user drag an image with transparent pixels over a background image in C#Posted on September 25, 2014 by Rod StephensThis example shows how you can let the user drag an image on a PictureBox. The PictureBox‘s Image property is set to a background image. The user can press the mouse down on any of the image’s non-transparent pixels to drag the image.When it starts, the program uses the fol..

개발/C# 2018.02.07