본문 바로가기

Development/C#11

Windows.Forms.ControlPaint - 테두리(Border) 그리기 링크 : http://msdn.microsoft.com/ko-kr/library/system.windows.forms.controlpaint(v=vs.110).aspx 테두리 그리는데 여러가지 방법이 있겠지만, ControlPaint 클래스의 DrawBorder 를 이용하면 간단하게 그릴 수도 있다. // Handle the Form's Paint event to draw a 3D three-dimensional // raised border just inside the border of the frame. private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle borderRectangle = this.ClientRectangle; b.. 2014.12.23
System.Drawing - 문자열 그리기 자간에 대해서 이미지에 문자열을 그리고자 하는데 맛이 가는 줄 알았다. DrawString을 이용하면 자간 조정이 안되고,TextRenderer를 이용하면 안티알리아싱이 안되고;; 워쩌란 말인가; 스택오버플로우에서도 아래와 같이 언급하고 있으나;; 안됨;; 흠.. [DllImport("gdi32.dll", CharSet=CharSet.Auto)] public static extern int SetTextCharacterExtra( IntPtr hdc, // DC handle int nCharExtra // extra-space value ); public void Draw(Graphics g) { IntPtr hdc = g.GetHdc(); SetTextCharacterExtra(hdc, 24); //set spaci.. 2014.12.23
통화(원) 표기 간단한데 자꾸 까먹어서 포스팅;; using System.Globalization;//선언해주세엠~ NumberFormatInfo NUM = new CultureInfo("ko-KR", false).NumberFormat; Console.WriteLine(Convert.ToInt64(100000000000000).ToString("###,###", NUM)); 2014.12.04
VBS(VisualBasicScript) 파일 실행 가끔 동적인 요소나 손쉽게 배치형식의 파일을 작성할때 아직도 VBS 파일은 유용하다.이때 Process 객체를 이용하여 C#에서 손쉽게 vbs 파일을 호출 할 수 있다.Process vbsProc = new Process(); vbsProc.StartInfo.FileName = vbsFilePath + @"\RunBatch.vbs"; vbsProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; vbsProc.Start(); vbsProc.WaitForExit(); vbsProc.Close(); 2014.11.15
Microsoft.ACE.OLEDB.12.0 공급자는 로컬 컴퓨터에 등록할 수 없습니다.(System.Data) 엑셀파일에 OLEDB 공급자로 접근하여 쿼리를 실행시켜 하니;;Microsoft.ACE.OLEDB.12.0 공급자는 로컬 컴퓨터에 등록할 수 없습니다.(System.Data) 에러작렬;; 구글링하고 오만 개지랄병을 떨어도 안됨;;;해서 찾다보니 아래와 같은 방법을 하면 왠만하면 거의 다 안정적으로 수행된다. 환경은 아래와 같다.OS : Windows 7 Ultimate 64bitOffice : 2010 64bit순서는 다음과 같다. 링크 : http://www.microsoft.com/ko-kr/download/details.aspx?id=13255 위 사이트에 가서 32bit 와 64bit 파일을 모두 다운로드 받는다. 왠만하면 둘다 설치해 놓는게디버깅에 지옥에 빠지느니 신상에 좋을거다.;;; 그리고 .. 2014.11.15
Graphics 에서 문자열의 Size 찾기 출처 : http://rea1man.tistory.com/entry/C-Graphics에서-문자열의-Size-찾기 Graphics 에 텍스트를 쓸때 배율에 따라 정해진 문자열을 항상 가운데에 위치시키고 싶을때가 있다. 이미지나 도형의 경우 해당 컨트롤이 올라가는 Parent 컨트롤의 Width /2 에서 해당 컨트롤의 Width /2 를 빼주는 방법으로 간단히 처리할 수 있다. 하지만 문자열의 경우는 이를 정확히 알수 없어 화면을 보면서 좌표를 찾아서 하드 코딩하는 경우가 많다. 이를 해결하기 위해 Graphics의 MeasureString 함수를 사용하면 편리하다. PictureBox pic.Image = new Bitmap(pic.Bounds.Width, pic.Bounds.Height); Graph.. 2014.10.08
using 지시문과 using 문 요새 조금씩 C# 을 보다보니 네임스페이스 지정할때 사용하는 using 지시문과 다르게using 문이 따로 있는것을 보았음;; 구글링하다보니 MSDN 과 데브피아의 한분이 자세하게 설명해준게 있어 링크 검. MSDNusing 지시문 - http://msdn.microsoft.com/ko-kr/library/sf0df423.aspxusing 문 - http://msdn.microsoft.com/ko-kr/library/yh598w02.aspx데브피아http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEULNo=8&no=117078&ref=117075using문을 사용한 리소스 관리는, 좋고 나쁨을 따질수 있는 선택적인 사항이 아니라, 반드시 숙지하.. 2014.10.07
메세지 박스 ( Confirm Dialog ) 다이얼로그if (MessageBox.Show("Are You OK?", "Confirm delete", MessageBoxButtons.YesNo) == DialogResult.Yes) { //TRUE } 2014.09.30
윈폼에서 콘솔창으로 로그 확인 구글링하다가 심플하고 고마운 라이브러리 찾음. 링크 : http://jenemia.tistory.com/172 출처 : http://devpia.co.kr/Maeul/Contents/Detail.aspx?BoardID=217&MAEULNO=8&no=20637&page=11 안녕하세요, 항상 얻어쓰다보니 , 유용하게 쓰는것 하나는 풀어야 되겠다는 생각으로 개발및 운영시 사용하던라이브러리 하나를 제공합니다 제가 만든것은 아니고, 외국개발자 2명이 공개용으로 제공한 소스를 제 입맛에 맞게 고쳤습니다. -------------------------------- 요점은, 각각의 Window Program는 도스창과 같은 터미널 창이 존재한다는 것입니다. 단지 보이지 않을 뿐이죠그 창을 활용해서 Debug클래스에서.. 2014.09.29
추상클래스를 왜 사용해야 할까? 출처 : http://mrtint.tistory.com/678 왜 추상클래스를 사용해야할까요? 어떤 기술의 사용이라는게 좋은 취지에서 사용이 되었더라도 다른 부분에서의 예기치 못한 불협화음을 만들어 낼 수 있다. 클래스의 상속이 그러할지도 모르겠다. 상속을 설명하며 Animal 이라는 클래스와 Cat, Dog 라는 클래스는 IS 의 관계를 만드는 관계를 맺고 있다. 그러면서 생기는 논리적인 문제는 구체적이지 않은 Animal 이라는 클래스의 인스턴스를 만들 수 있다는 점이다.Animal ani1 = new Animal(); Animal ani2 = new Dog(); Animal ani3 = new Cat(); 그럼 Animal 이라는 클래스로부터 Dog, Cat 이라는 클래스가 공유해야할 것들은 공유하.. 2013.12.06
STUDY - C# 프로그램의 일반적인 구조 using System; namespace MyNameSpace//네임스페이스 { class MyClass//클래스 { } struct MyStruct//구조체 { } interface MyInterface//인터페이스 { } delegate int MyDelegate();//대리자 enum MyEnum//열거형 { } namespace MySubNameSpace//네임스페이스 { } class MyMainClass//클래스 { static void Main(string[] args)//메인함수 { Console.WriteLine("GoTo!"); } } } 2013.11.14