Click Event -> EnterCell Event 순이다 논리적으로 그리드 안에 들어가기 위해서는 마우스로 클릭을 해야 한다. 그래서 클릭을 하게되면 Click Event가 일어나 먼저 실행이 되고 끝나면 EnterCell Event가 일어나 실행이 된다... 중간에 DoubleClick Event가 발생했다고 치면... Click Event -> DoubleClick Event -> EnterCell Event 가 될것이다( 안해봤지만 충분히 유추 가능하다.) 개발시 그리드 내에 Row 포커스 이동시 해당 Row의 Cell Editing을 가변적으로 막으려고 하는데 속성으로 AllowEditing 먹였는데 잘 되지 않을시 위 이벤트들을 잘 살펴보길....
자동 종료 프로그램...퇴근시간에 윈도우 업뎃이 떠서 종료시키지 못할때...일찍 퇴근하고 싶은데 컴퓨터가 자기 혼자 작업중이라 종료시키지 못할때...일찍 퇴근하고 싶은데 늦게까지 있었다고 구라(?) 칠수 있는 알리바이 만들고 싶을때....등등... 윈도우의 shutdown 명령어 활용하여 만든 자동종료 프로그램임...현재시각에서 1분, 10분, 한시간(무조건 현재시간에서 1분뒤, 10분뒤, 한시간뒤 종료) 또는설정시간에서 1분, 10분, 한시간씩 더해서(설정시간에서 +1분, +10분, +한시간씩 늘일수 있음) 설정할수 있음 종료 및 재부팅, 로그아웃, 절전모드 사용가능 종료 및 재부팅은 종료시간 예약가능종료 시 사용하고 있던 프로그램을 재부팅시 다시 가동시키는 옵션 추가 로그아웃, 절전모드는 즉시 실행됨..
암호화 방법 몇 가지...사용하기전 using System.Security.Cryptography; 추가 // MD5 암호화 128bit 암호화 public static string MD5Hash(string Data) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] hash = md5.ComputeHash(Encoding.ASCII.GetBytes(Data)); StringBuilder stringBuilder = new StringBuilder(); foreach (byte b in hash) { stringBuilder.AppendFormat("{0:x2}", b); } return stringBuilder.ToString(); } // SHA256 256..
오버로드는 기존에 정의 되어 있던걸 새롭게 정의하는거야 간단하게 말하면 + 가 덧셈이자나 그걸 오버로드 시켜서 나는 * 부호로 쓰겠다 하는게 오버로드 오버라이드는 + 라는 기호가 있다 라고 정의만 해놓고 A에서는 덧셈으로 쓸수있게 정의하고 B에서는 *으로 쓸수 있게 C에서는 / 으로 쓸수 있게 하는 방법이야 차이점은 초기에 정의를 하느냐 마느냐 차이 소스 코드로 설명하자면 오버로드는 함수 정의 할때 AAA() --> 1 AAA(string a) ->2 AAA(string a, string b) -> 3 AAA(string a, int b, double c) -> 4 이런식으로 같은 함수명인데 하는 역할은 다르게 하는거고 오버라이드는 AAA(); -> 정의 상속 A class AAA(){ 123; }; B..
public static class ExtMethod { public static string ConvertTen(this string s) { string returnStr = ""; for (int i = 0; i < 10; i++) { returnStr += s; } return returnStr; } } string 변수에서 '.' 찍고 난 다음 나오는 메서드에 추가하고 싶을때 씀 ex) string a = "a"; Console.WriteLine(a.ConvertTen()); 하면 a가 10개 찍혀서 나온다
C#에서 as는 강제형변환을 해주는 연산자이다. 강제형변환이라하면 그냥 (double)a; 라고 하면 되지 굳이 as 연산자를 사용할 필요가 있을성싶다. 보통 형변환이라고 하면 낮은형에서 높은형으로 변환하는 것을 말한다.(ex: int->double) 강제형변환이라고 하는 것은 높은형에서 낮은형으로 변환하거나 에러가 날 수 있는 형변환을 말한다.(ex:double->int , int->string) 일반적인 형식으로 강제형변환을 하게 되면 예외가 발생하게 된다. 하지만, as 연산자를 사용하게 되면, 불가능한 형변환(문제가 제기될 수 있는)시 예외가 발생하는 것이 아니라. Null값이 대입된다. ex) obj ob1 = 1234; string str; str = ob1 as string; // 불가능한 ..
참조 : http://mastmanban.tistory.com/235 C# 윈폼에서 DataGridView Data를 Excel 파일로 저장하는 소스를 알려 드리겠습니다. 순수하게 제가 만든건 아니고 여러 사이트에서 소스를 참조해서 제 상황에 맞게끔 응용을 했습니다. 제가 MS 오피스 2007 에 Visual Studio 2008 을 쓰기 때문에 이를 기준으로 소개를 하겠습니다. 먼저 솔루션 탐색기에서 참조추가를 합니다. 솔루션탐색기->참조추가->COM->Microsoft Excel 12.0 Object Libary 선택 이후 아래 소스를 적용하시면 됩니다. using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; private voi..
SaveFileDialog savefile = new SaveFileDialog(); savefile.InitialDirectory = @"C:\"; savefile.Title = "Save Chart Image"; //savefile.CheckFileExists = true; //savefile.CheckPathExists = true; savefile.DefaultExt = "jpg"; savefile.Filter = "JPEG (*.jpg)|*.jpg|Bitmap (*.bmp)|*.bmp|GIF (*.gif)|*.gif|All Files (*.*)|*.*"; savefile.FilterIndex = 0; savefile.RestoreDirectory = true; if (savefile.ShowDi..