개발 110

[팁] C# 하위폼에서 상위폼으로 데이터 전달

하나의 폼 안에 많은 자식 폼들을 생성하여 각각 팝업이나 화면 일부분을 구현 하는 경우가 많습니다. 부모 폼에서는 생성한 자식 폼들의 인스턴스를 가지고 있기 때문에 자식 폼을 컨트롤 하고 객체에 접근하기가 매우 간단합니다. 하지만 반대로 자식 폼 입장에서는 부모 폼의 인스턴스를 가지고 있지 않을 경우엔 부모 폼의 매서드나 객체를 호출하기가 까다롭습니다. 자식 폼에서 이벤트가 발생했을때 필요한 변수와 함께 부모폼에게 이벤트를 전달하거나, 상위 폼의 원하는 매서드를 호출 시키는 방법을 대리자 선언을 통해 알아보겠습니다. ⧫ 기능 정의1. A와 B 두개의 폼이 있을때 A는 B의 인스턴스를 선언하여 B를 자유롭게 컨트롤 한다.2. B는 A의 인스턴스를 가지지 않고 필요할때 마다 A에게 이벤트를 호출한다.3. B..

개발/C# 2018.01.25

[팁] C# 데이터그리드뷰 엔터키 입력시 다음행 이동 금지

Key_Down 이벤트에 아래와 같이 코드를 추가해주면 엔터키를 쳤을 때 다음 행으로 이동이 안된다.구글에서 c# datagridview cell enter event 로 검색하면 관련 게시글들이 나온다. private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Enter) { int column = dataGridView1.CurrentCell.ColumnIndex; int row = dataGridView1.CurrentCell.RowIndex; dataGridView1.CurrentCell = dataGridView1[column, row]; e.Handled = true;

개발/C# 2018.01.25

이미지 다운로더

- 미리보기 더블 클릭시 원본 이미지가 새창으로, 새창을 더블클릭시 닫힘.- 검색 중지. - 허접 하지만.. ㅋㅋ 막상 찾아보면 업더라 이런 프로그램. 그래서 만들어봤음. API는 쓰지 얺고 순수 HTML 파싱으로만 만들어져 있기때문에 먼가 많이 부족함. ㄷ ㄷ ㄷ---------------------------------------------------------------------------------------------------------------------- 이미지 다운로더

C# Intel hex to bin Code

Intel Hex file 을 bin 파일로 변경해주는 코드.winform 형태로 테스트를 위해서는 button1과 saveFileDialog1만 별도 이름 변경없이 추가만 하면됨. 1. 파일을 불러온다.2. 정상적으로 불러왔으면 파일 이름이 messagebox에 뜬다.3. 확인을 누르면 bin 파일로 변경된 파일을 저장할곳을 지정한다.4. 완료. using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using Sy..

개발/C# 2018.01.02

C#클래스 분리

아주 간단한 예제.버튼을 누르면 테스트 박스에 "테스트"란 글씨가 뜬다. 그런데. 윈도우 폼 형태의 프로젝트에서는 UI 즉 버튼이나 텍스트 박스같은 것들은 모두 private로 잡히기 때문에모든 코드를 Form1.cs에서 작성해야 한다. 나처럼 C를 오래 했던 사람들이나 소프트웨어 구조(아키텍쳐)를 배운 사람입장에서는 도무지 용납이 안된다.왜냐 유지 보수 차원에서라도 모든 코드를 Form1.cs에 때려 박으면 재사용이 일단 안된다. 어디에 무슨 코드가 있는지 코드 줄이 길게 되면 연관된것끼리 묶는다 해도 이건 아닌거다. 그래서. 간단한 예제를 만들어봤다.button1과 textbox1은 form1.Designer.cs에 만들어져 있고, form1.Designer.cs와 form1.cs는 partial로 ..

개발/C# 2017.12.26

C#에서 dll import 하기

C#에서 사용하기C++로 만든 dll은 기존의 C#의 dll을 사용하던 것 처럼 reference에 추가해서 사용하실 수 없습니다. 그래서 코드에 직접 , 사용한다고 선언해주고 사용하여야 합니다.먼저, C++을 이용해서 만든 dll을 필요한 위치에 위치 시킵니다. 저같은 경우 실행파일과 같은 위치에 위치하였습니다. (*) 그런 뒤 ,1 ) using System.Runtime.InteropServices; NameSpace를 추가한 후 2 ) [DllImport("TestLib.dll")] 를 이용하여 사용할 Dll을 명시한 후 사용할 함수를 선언합니다. (* 실행파일과 같은 위치에 있으면 dll의 이름만 쓰시면 됩니다. 아닌경우 주소까지 같이 명시) 3) 그리고 그냥 함수처럼 사용하시면 됩니다. usi..

개발/C# 2017.12.14

C# 폼간에 전역변수 사용하기

Form1와 Form2를 만들었거든요.Form1에 값을 Form2에 넘겨서 Form2에 있는 다이얼로그박스에있는 버튼을 누르면 Form1에서 넘겨준값을 뿌려주는 간단한 프로그램입니다. Form2안에 get,set 코드를 심어주면 잘 되는데.그렇게 하지않구 Data.cs라는 클래스를 하나 만들어서거기에 get_set을 넣었습니다.어떻게 호출하면 되는지요?아래와같이 작성했는데 왜 값이 Form2에 안넘어가는지 모르겠네요. /**********Form1.cs***********************/private void button1_Click(object sender, EventArgs e) { Form2 Frm2 = new Form2(); Data a = new Data(); a.Ct = "안녕하세요";..

개발/C# 2017.12.14