728x90
반응형

C# 73

[C#] 키 입력에 따른 PictureBox Image 분할창 띄우기

프로그램 개발 중 측정 이미지를 4 분할하여 키패드의 키를 누르면 각 분할 화면이 보이도록 하는 요청이 있었다. 위와 같이 이미지에서 화면을 4 분할하여 키패드의 각 숫자를 누르게 되면 해당하는 화면 분할이 보이도록 하였다. 간단하게 Form1에 PicturBox1 하나를 생성해 주고, KeyDown 이벤트를 사용하기 위해 Form1 속성에서 KeyPreview 를 True로 변경해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Bitmap bmp; Form form2; PictureBox pictureBox2; private void Form1_Load(object sender, EventArgs e) { bmp = new Bitmap(@"E:/2020_Di..

IT/C# 2020.01.06

[C#] Unsafe Code 사용하기 (pointer 사용하기)

C#에서 Pointer를 사용하기 위해서는 Unsafe Code를 사용해야 한다. 예시로 아래와 같은 SwapNumber 라는 함수를 포인터를 이용해서 만들어 봤다. 그냥 포인터만 사용해서 함수를 짜면 다음과 같이 포인터 사용 부분에 에러가 뜨고, unsafe 코드를 추가해줬을 때는 다음과 같이 에러가 뜬다. 그래서, C#에서 포인터를 쓰기 위해서는 다음과 같이 해야 한다. 먼저, 프로젝트 우클릭 후 속성(Properties)으로 들어간다. 속성 창의 왼쪽에서 Build를 클릭한 후, 일반(General)에 있는 Allow unsafe code를 체크해준다. 그럼 이제 정상적으로 포인터를 사용할 수 있다!

IT/C# 2019.11.29

[C#] CultureInfo와 Resources File을 사용하여 Multi Language 다국어 지원하기

중국에 새로운 프로그램을 적용하기 위해 다국어 지원 가능 프로그램을 만들게 되었다. Visual Basic으로 기존에 사용했을 때는 각 label, button 등에 적용하기 위해 String 배열을 선언해 놓고 선택한 Language에 따라 다른 배열을 적용하도록 했었는데, 신규 프로그램에서는 String을 한 번에 관리하기 쉬운 Resources File을 사용하여 개발해보기로 하였다. 먼저, 새로운 Windows Form App 프로젝트를 생성해준다. 그런다음 프로젝트를 우클릭해서 New item을 추가해준다. Resources File을 선택해준 후 이름을 입력한다. 지원할 언어의 개수에 따라 Resources File을 생성한다. 영어, 한국어, 중국어 지원을 위해 3개의 Resources Fi..

IT/C# 2019.06.05

[C#] Mouse Event를 통해서 Picturebox 포인트 사이 거리 구하기

PictureBox Mouse Drag로 사각형 그리기 PictureBox 클릭 시 마우스 포지션 가져오기 두 포인트 사이에 거리 계산하기 MouseDown, MouseMove, MouseUp Event 마우스 다운 이벤트(picturebox1_MouseDown)에서의 시작 포인트( X1, Y1 ) 값과 마우스 업 이벤트(picturebox1_MouseUp)에서의 마지막 포인트( X2, Y2 ) 값을 통해 각 포인트 사이의 거리, 즉, 표시된 사각형의 대각선 길이를 구하는 코드이다. 두 포인트 사이의 거리는 우리가 잘 알고 있는 수학공식을 이용하여 계산하였다. 이를 코드로 나타내면 아래와 같다. double distance = Math.Sqrt(Math.Pow((e.X - clickPoint.X), 2)..

IT/C# 2019.05.31

[C#] Picturebox 위에 Grid 격자 모눈종이 그리기

간단한 방식으로 Picturebox 위에 Grid 격자 모눈종이 무늬 그리기 picturebox 속성에서 Paint Event를 생성해주고 아래와 같이 코딩한다. Pen pn을 선언하고 격자 간격을 증감자에서 정해준다. 간격만큼 증가시켜서 그려주면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 private void pbZoom_Paint(object sender, PaintEventArgs e) { int Xn = pbZoom.Width; int Yn = pbZoom.Height; Pen pn = new Pen(Color.FromArgb(150, 255, 255, 255)); for (int y = -3; y

IT/C# 2019.05.29

[C#][Database] Mysql Database 연결하기

2020/02/28 - [IT] - [C#] 가계부 프로그램 만들기 DAY1. Database 설정 및 연결 [C#] 가계부 프로그램 만들기 DAY1. Database 설정 및 연결 새해 다짐으로 올해도 돈을 한 번 조금만 써보자.. 돈 관리를 해보자.. 하는 바람에서 가계부를 만들어보기로 했습니다. 부자가 되는 그날까지 돈을 열심히 벌고 열심히 관리하자는 의미도 있고, ella-devblog.tistory.com 2020.10.15 포스팅 수정 가계부 프로그램에서 사용하기 위해 DBMySql 클래스를 수정하였습니다. 각각의 Select, Insert, Update, Delete 함수는 사용자가 사용방식에 맞게 수정하여 사용할 수 있습니다. String Sql 구문에서 DataBase에서 입력할 쿼리를 ..

IT/C# 2019.05.27

[C#][Solved] System.ArgumentOutOfRangeException: 'InvalidArgument=Value of '-1' is not valid for 'index'.

ListBox를 좀 이쁘게^^ 만들어보려고 DrawItem 속성을 이용하는 도중에 에러가 났다. (DrawItem 안에는 ListBox 값 선택 시 배경화면을 LightCoral 색으로 색칠하게 했다.) System.ArgumentOutOfRangeException: 'InvalidArgument=Value of '-1' is not valid for 'index'. ListBox를 Clear() 해주고 다시 재생목록을 가져오는 부분에서 DrawItem 이벤트를 계속 호출해서 리셋된 Index 값 -1을 참조하는 것 같았다. 그래서 DrawItem 코드 실행문을 if문 안에 넣어줬다. e.Index > -1 일때만 실행하도록! 그랬더니 잘된다! Success! : )

IT/C# 2019.04.03

[C# winform] TextBox 커서 자동으로 깜빡이게

메인 폼에서 서브 폼을 열 때,서브 폼을 열 떄마다 텍스트박스에 커서가 자동으로 깜빡이게 하려면 메인 폼에서 서브 폼을 호출할 때Show();를 이용해 열기전에 서브 폼에서 On() 함수를 만들어 폼을 열 때마다 커서가 활성화 되도록 해준다.서브폼에 아래의 함수를 추가하고 public void On() {ActiveControl = textBox1;} 메인폼에서 호출 시On(); 함수를 먼저 호출해 준 다음Show();함수를 호출한다. 그러면 서브 폼을 열때마다 textBox1 에 커서가 자동으로 깜빡이게 된다!

IT/C# 2019.01.10

[C#] PictureBox 이미지 자르고 적용하기

이미지의 특정 부분만 잘라서 사용하도록 만들어보자. 먼저 pictureBox1과 pictureBox2를 만들어주고 이미지 resize를 위해 button1 하나를 생성해 주었다. pictureBox1에는 Size = (450, 450) 의 이미지를 넣고 실행했다. 이미지의 위, 아래로 100씩 잘라내고 Size = (450, 250) 의 이미지로 만들고 싶기 때문에 RESIZE 버튼을 눌러주었을 때의 button1_Click 이벤트 및 resizeImage() 함수를 삽입해 준다. 아래의 코드와 같이 작성해 주었다. 1234567891011121314151617181920private void button1_Click(object sender, System.EventArgs e){ pictureBox2...

IT/C# 2018.12.05

[C#] WinForm 마우스 클릭 이동으로 움직이기

Windows Form 개발 시 디자인을 위해 Form Style 을 적용하는 경우가 있다.일반적으로 FormBorderStyle 을 None으로 설정해 상단바를 없애고 Manual로 만드는데이렇게 설정했을 때, 프로그램 실행 후 윈도우 상에서 Form의 위치 변경이 불가능하다. 이런 경우에, 윈도우 상에서 Form을 마우스 클릭 이동으로 위치 변경하는 방법을 포스팅하고자 한다. Form을 만들고 FormBorderStyle 을 None으로 설정 후위 화면에서 F7 을 눌러 View Code 모드로 들어간다. 먼저 전역변수로 마우스 이벤트를 핸들링 할 bool On;Point Pos; 를 등록해주고 Form1() 안에 아래의 코드를 추가해 준다. 123MouseDown += (o, e) => { if (..

IT/C# 2018.11.26
728x90
반응형