본문 바로가기

Development/C#7

TextBox에 숫자만 입력받기 우선 TextBox에 KeyDown 이벤트를 추가한다. 그리고나면 private void TextBox1_KeyDown(object sender, KeyEventArgs e) { if (checkNumber(e.Key)) { e.Handled = false; } else e.Handled = true; } 위와 같은 코드를 생성하면 되는데, e.Key를 통해 눌린 키를 확인할 수 있다. 눌린 키가 숫자이면 checkNumber 메서드는 true를 반환하므로 결국 e.Handled가 false면 입력이된다. 즉, e.Key를 통해 눌린 키를 확인하고, e.Handled에 false를 반환하면 입력이 되고, true를 반환하면 입력이 되지 않는다. 숫자를 확인하는 checkNumber 메서드는 아래와 같이 .. 2011. 4. 29.
코드로 배포/설치프로그램 생성 후 명령프롬프트 명령 내리기 특정 프로그램 실행시 레지스트리 등록이나 별도의 프로그램 실행이 필요한 경우가 있다. 이때, 배포/설치 프로그램으로 배포/설치를 하는 경우 경로가 변경되는데, 이를 감안하여 코딩을 해보았다. 내용은 윈도우의 regsvr32를 이용해 ocx를 레지스트리에 등록하는 작업이다. string text = "@echo off" + Environment.NewLine + "regsvr32 " + "\"" + Application.StartupPath + @"\Test.ocx" + "\"" + Environment.NewLine + "exit" + Environment.NewLine; 우선 Application.StartupPath를 이용해 프로그램이 실행된 위치를 알아오고, 그 위치에 있는 Test.ocx 파일을 .. 2011. 2. 16.
Attribute 사용처 - 두번째 이야기 Attribute가 런타임에게 특정 작업을 지시한다? 도대체 무슨 말일까요? 한번 보도록 하죠. MSDN을 보니 PropertyGrid를 생성하는 예제가 있군요. 소스는 귀찮아서 때려 붙이고 옆에 주석을 달겠습니다. [DefaultPropertyAttribute("SaveOnClose")] // Attribute 등장!! 기본으로 선택되어 있을 Property를 설정합니다. public class AppSettings { // 아래로 각종 변수 초기화 private bool saveOnClose = true; private string greetingText = "Welcome to your application!"; private int itemsInMRU = 4; private int maxRepea.. 2010. 3. 8.
Attribute 사용처 C#을 하다보니 [ ]에 둘러쌓인 Attribute를 자주 접하게 됩니다. 하지만 설명은 어딜 찾아봐도 모두 애매하게 나와있는게 현실이죠. 그래서 약간 집중해서 웹을 뒤져봤습니다. 우선 간단한 용도나 특징은 이렇습니다. * Runtime(런타임)에게 특정 작업에 대한 지시를 하기 위해 사용한다. * .NET Framework의 일부분이다. * 내장 Attribute와 사용자 정의 Attribute 모두 사용 가능하다. 이것만 가지고는 이해가 되지 않죠? 그럼 MSDN에서 찾은 소스를 보도록 하죠. Type type = Type.GetType("cTest"); // 우선 cTest라는 클래스의 타입을 가져옵니다. foreach(Attribute attr in type.GetCustomAttributes(t.. 2010. 3. 8.