본문 바로가기

.Net53

C# InputBox C#에서 간단히 하나의 값을 받어서 처기하기 위해 InputBox를 구현하는 일은 조금 귀찮은 일입니다. 폼을 만들고, Control을 배치하고... 이런 경우 아래와 같이 Visual Basic의 InputBox를 활용하면 괜찮을 듯 합니다. 1. VS 프로젝트 참조에 Microsorft.VisualBasic을 추가합니다. 2. 아래의 코드를 입력합니다. string input = Microsoft.VisualBasic.Interaction.InputBox("Prompt", "Title", "Default Response"); 3. 실행하면 아래와 같이 Input을 받을 수 있습니다. 2016. 6. 7.
C# 텍스트 파일 복사 코드 텍스트 파일 복사 코드입니다. public void CopyFile(string sourceFileName, string targetFileName) { StreamReader sr = null; StreamWriter sw = null; try { sr = new StreamReader(sourceFileName); sw = new StreamWriter(targetFileName); string str; while ((str = sr.ReadLine()) != null) { sw.WriteLine(str); } } catch (Exception ex) { throw ex; } finally { try { sr.Close(); } catch { } try { sw.Close(); } catch { } .. 2016. 5. 31.
C# 개행문자 Replace하기 C#에서 문자를 치환(Replace)하는 함수는 아래와 같이 2가지를 제공하고 있습니다. 개행문자를 치환(Replace)하기 위해서는 아래의 코드와 같이 코딩을 하는데, 이런 경우 치환(Replace)라 되지 않습니다 string str = "문자\r\n치환"; str = str.Replace("\r\n", ""); 개행문자를 치환(Replace)하기 위해서는 아래와 같이 Enviroment.NewLine을 이용하면 개행문자를 치환 할 수 있습니다. string str = "문자\r\n치환"; str = str.Replace(Enviroment.NewLine, ""); 2016. 5. 31.
C# DateTimePicker 커스텀 포맷(Custom Format) 적용하기 C#의 컴포넌트 중 날짜를 선택하는 유용한 DateTimePicker가 있습니다.DateTimePicker의 경우 아래와 같이 날짜가 표시되는데 일반적으로 2016-02-23과 같이 많이 사용합니다.이렇게 변경하기 위해서는 Custom Format을 수정해야합니다. 관련 URL : https://msdn.microsoft.com/ko-kr/library/system.windows.forms.datetimepicker.customformat(v=vs.110).aspx 1. Form에 DateTimePicker 컴포넌트를 넣습니다. 2. 아래와 같이 DateTimePicker가 추가됩니다. 3. Custom Format을 적용하기 위해서는 아래와 같이 2개의 속성(CustomFormat, Format)을 수.. 2016. 2. 23.
엑셀파일에 ODBC를 연결하여 엑셀의 데이터 가지고 오기 엑셀파일에 ODBC를 연결하여 엑셀의 데이터를 DataGridView에 표시해 보도록 하겠습니다. 1. 엑셀파일에 ODBC 연결하기 string excelODBCConString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Extended Properties='Excel 8.0;HDR=YES';DBQ="; string conStr = excelODBCConString + excelFilePath; OdbcConnection con = new OdbcConnection(conStr); 2. 엑셀의 시트명 얻기 string sheetName = null; string excelODBCConString = "Driver={Microso.. 2015. 12. 24.
C# 엑셀 셀 형식(서식) 정의하기 엑셀의 서식에는 텍스트, 숫자, 날짜 등의 셀 형식(Cell Type)이 있습니다. 엑셀의 셀형식을 변경하고자 하려면, 아래의 코드와 같이 엑셀의 셀 형식을 지정할 수 있습니다. (Type을 지정하는 것이 아니고, 셀의 NumberFormat을 지정하여 셀형식을 지정합니다.) Microsoft.Office.Interop.Excel.Workbooks workbooks = application.Workbooks; Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Sheets .. 2015. 12. 15.
Error : are you missing a using directive or an assembly reference? C#에서 참조를 했는데도 아래와 같은 에러가 발생하는 경우가 있습니다. The type or namespace name 'ClassName' could not be found (are you missing a using directive or an assembly reference?) 이런 경우는 프로젝트 속성에서 Application 탭의 Target framework가 .Net Framework Client Profile로 지정되어 있기 때문입니다.따라서 Target framework을 .Net Framework로 변경 변경하시면 됩니다.(아래의 이미지를 참고하세요.) 2015. 11. 26.
VB.Net 프로젝트에서 참조(Reference)를 Solution Explorer에 표시하기 C#프로젝트의 경우 Solution Explorer에 기본적으로 참조(Reference) 노드가 표시되어있습니다.하지만 VB.Net 프로젝트에서는 기본적으로 참조(Reference) 노드가 표시되지 않아, DLL을 참조 하려고 할 때 어디서 해야하는지 한참을 찾아보았습니다.그런데 너무 쉽게 참조(Reference) 노드를 표시 할 수 있어서 허무했습니다. 1. Solution Explorer의 Toolbar에서 Show All Files 버튼을 클릭합니다. 2. Solution Explorer에 참조(Reference)가 표시됩니다. 이제 DLL, COM 등을 쉽게 참조해보세요. 2015. 11. 18.
C# LoaderLock was detected 오류 처리방법 .Net에서 개발 시 가끔 발새하는 오류입니다.정확한 원인은 모르겠지만....관리되는 코드를 DllMain 또는 이미지 초기화 함수에서 사용하지 말라고 하며, Application이 Hang이 걸리 수 있다고 합니다. 비주얼 스튜디오에서 디버깅 후 아래의 메시지가 표시 되었습니다. 해결방법은 아래와 같습니다.(원천적으로 해결되는 방법은 아니며, 임시적으로 처리하는 방법입니다.) 1. 비주얼 스튜디오의 메뉴 Debug > Exceptions를 클릭한다. 2. Exceptions 화면에서 LoaderLock 옵션을 해제합니다. (1) Managed Debugging Assistants의 하위 항목을 펼칩니다. (2) LoaderLock 항목의 Thrown 체크박스는 언체크(Uncheck)로 변경하고 Ok 버.. 2015. 11. 5.
C# 클래스 타입 비교 C#에서 클래스 타입을 비교하는 2가지 방법입니다. string str = "문자"; if (str.GetType() == typeof(string)) { // 처리 로직 } if (str is string) { // 처리로직 } 2015. 9. 23.
C# TreeView에서 선택된 TreeNode의 글자 Font Style 변경하기 TreeView의 TreeNode를 선택하면 해당 TreeNode의 배경이 기본적으로 찐한 파랑색으로 변경됩니다. 하지만 TreeView가 있는 Form에 Focus가 다른 Application으로 이동하면 선택된 TreeNode의 배경이 기본색으로 변경되어 선택한 TreeNode를 확인하는 것이 힘듭니다. 이러한 점을 해결하기 위해서 선택된 TreeNode의 글자를 굵게 표시하는 방법에 대해서 알아보겠습니다. 1.아래와 같이 Form에 TreeView를 추가합니다. 2.TreeView에 AfterSelect와 BeforSelect 이벤트를 추가합니다. 3.AfterSelect와 BeforeSelect 이벤트에 아래와 같이 코딩합니다. using System; using System.Collections.. 2015. 9. 9.
C# 엑셀 프로그래밍 2 : 엑셀 시트 생성 하기 C#에서 엑셀 시트를 생성 후 실행하는 방법에 대해서 알아보겠습니다. 1. 아래와 같이 엑셀 시트 만들기 버튼을 추가 후 클릭 이벤트를 생성합니다. 2.아래의 코드에서 엑셀 시트 만들기 버튼의 이벤트(btnCreateSheet_Click)에 시트 생성 코드를 입력합니다. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace ExcelProject { public partial class Form1 : Form { p.. 2015. 9. 3.
C# 엑셀 프로그래밍 1 : 엑셀 실행하기 C# Application을 개발하다 보면, 리포트를 엑셀로 구현이 필요한 경우가 종종 발생합니다. Grid의 데이터를 엑셀의 특정 양식으로 구현이 필요한 경우겠죠. C#에서 엑셀을 핸들링하는 방법에대해서 알아보겠는데, 이번에는 오피스의 엑셀을 실행하는 방법에 대해서 알아보겠습니다. 1. C# 프로젝트를 생성하고, 참조(Reference)를 추가하기 위해 Add Reference를 클릭합니다. 2.Add Reference에서 .Net 탭을 선택하여, Microsoft.Office.Interop.Excel을 추가합니다. 3. 아래와 같이 Form에 버튼을 추가하고, 클릭 이벤트를 생성합니다. 4. 버튼 이벤트(btnRunExcel_Click)에 엑셀 실행 코드를 작성합니다. using System; usi.. 2015. 9. 2.
C# - Bitmap 이미지 해제 로컬에 있는 이미지를 Bitmap 객체로 가지고 올 경우 및 Bitmap을 사용할 때 메모리 해제를 해주어야 한다. 메모리 해제를 하지 않으면, 로컬의 이미지 파일 같은 경우는 Application이 종료되지 않으면, 해당 이미지 파일을 계속 사용되게 되어 이미지 파일을 삭제하지 못하는 경우가 발생한다. 따라서 Bitmap으로 이미지를 사용 후에는 반드시 메모리를 해제해주어야 한다. Bitmap bitmap = new Bitmap("Image File Path"); /* 이미지에 대한 작업 코드 */ // 이미지 메모리 해제 bitmap.Dispose() 2015. 9. 1.
Type Libraries(.TLB) 파일 레지스트리에 등록하기 Type Libraries(.TLB) 파일을 레지스트리에 등록하는 방법입니다.아래의 명령어를 도스창 또는 윈도우즈의 실행에서 수행하시면 됩니다. C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe TypeLibrariesFile.tlb 2015. 8. 18.
C# - DataGridView의 컬럼 정렬 DataGridView를 사용하여 구현시 각 컬럼마다 좌측,우측,중앙 정렬을 해야 할 경우가 있습니다.예를 들면 문자는 좌측 정렬, 숫자는 우측정렬 등...DataGridView에서 컬럼의 정렬방법을 알아보겠습니다. 1.DataGridView 에서 Edit Columns를 클릭합니다. 2. Edit Columns화면에서 DefaultCellStyle 항목의 [...] 버튼을 클릭합니다. 3. CellStyle Builder 화면의 Layout > Alignment에서 원하는 정렬 방식을 선택하면 각 컬럼의 정렬을 할 수 있습니다. 2015. 8. 12.
C# - Inconsistent accessibility: return type Error - Inconsistent accessibility: return type...... 위의 에러 메시지가 표시되면, return type 중에 public으로 접근자를 지정하지 않아서 입니다. 2015. 8. 7.
C# - DataGridView의 헤더 텍스트 정렬하기 DataGridView를 생성하고 컬럼을 추가하면 DataGridView의 헤더의 텍스트는 기본적으로 좌측 정렬로 되어있습니다.헤더의 텍스트 정렬을 변경하는 방법을 알아보겠습니다. 1.DataGridView 를 선택합니다. 2. Properties(속성)에서 ColumnHeaderDefaultCellStyle의 [...] 버튼을 클릭합니다. 3.CellStyle Builder 창에 Layout의 Alignment 속성을 원하는 정렬로 변경합니다. 여기서는 MiddleCenter로 변경하겠습니다. 4. 아래의 이미지와 같이 DataGridView의 헤더 텍스트가 중간정렬로 변경되었습니다. 2015. 8. 5.
C# - 리소스 이미지 코드로 사용하기 프로젝트 리소스로 이미지를 등록 후 C#코드로 사용하는 방법입니다. 1.아래와 같이 프로젝트 리소스에 이미지를 등록합니다. 2. C#코드는 아래와 같이 Prpperties 네임스페이스의 Resources 클래스의 변수로 이미지를 사용할 수 있습니다. 2015. 8. 2.
C# - 이미지 사이즈 변경(Resize) .Net 프로그래밍에서 이미지를 처리하기 위해 Bitmap 객체를 사용합니다. 그리고 이미지의 사이즈를 변경해야 하는 경우도 발생합니다. 이미지의 사이즈를 변경하는 방법은 여러가지가 존재합니다. 밑의 소스는 아주 간단하게 이미지의 사이즈를 변경하는 방법입니다. // 원본 이미지 Bitmap sourceImage = new Bitmap(@"D:\earth.png"); // 사이즈가 변경된 이미지(1/2로 축소) int width = sourceImage.Width / 2; int height = sourceImage.Height / 2; Size resize = new Size(width, height); Bitmap resizeImage = new Bitmap(sourceImage, resize); 2015. 7. 3.
C# - 정규식을 이용한 문자 변환 정규식을 이용하여 특정 문자만 얻는 방법을 알아보겠습니다. - Namespace : System.Text.RegularExpressions - Class : Regex - Method : public static string Replace( string input, string pattern, string replacement ) 1. 숫자만 얻기 - 정규식 : [^0-9] string str = "Englsh@korea$101299**한글"; // 숫자만 0-9 str = Regex.Replace(str, @"[^0-9]", ""); // 결과 : 101299 2. 영문자만 얻기 - 정규식 : [^a-zA-Z] string str = "Englsh@korea$101299**한글"; // 영문자 a-z .. 2015. 6. 19.