공룡호가 사는 세상 이야기

+1

C# TIP 몇가지

프로그래밍2007. 10. 4. 20:34

C#을 해 보면서 기존에 사용하던 언어와 조금 달라서 필요한 것들을 찾아 쓰고 메모해 두었던 것들을 포스팅.

키보드 이벤트 처리

특정 이벤트에서 키보드 키 메시지를 잡아야 할 때, 이벤트 처리 메소드에 전달되는 e 객체의 KeyChar속성을 이용한다. 키보드 각각의 값이 상수로 정의되어 있으므로, 원하는 키의 후킹이 가능
private void NONAME(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
 if(e.KeyChar == (int)Keys.Enter) { ... }
 또는
 if (e.KeyCode.Equals(Keys.Enter))
}

String의 Bytes단위 처리

String에는 영문자가 있을 수도 있고, 특수문자가 있을 수도 있고, 한글이 있을 수도 있다. 총 바이트 개수를 알고 싶을 때에는, 다음과 같이 한다
int length = Encoding.Default.GetByteCount(textBox1.Text);

URL로의 Redirect

LinkLabel을 붙이고, 이벤트에 보면 LinkLabel 클릭 이벤트가 존재한다. 당연히 URL로 이동을 해야 하는데 이런 부분은 속성창에서 지원해 주지 않으므로 직접 코딩한다
System.Diagnostics.Process.Start("http://dolbbi.com");

Dialog를 이용하지 않고 MessageBox의 지원 기능으로 분기하기

사용자의 요구에 따라 특정 이벤트로 분기해야 할 경우, Dialog를 생성하지 않고 MessageBox로 분기한다. 단, 복잡한 분기보다는 Yes/No의 간단한 분기에서 사용. (별거 없다 -_ -)
DialogResult result = MessageBox.Show("choose, yes or no", "messagebox", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
            switch (result)
            {
                case DialogResult.Yes:
                    // CALL EVENT
                    break;
                case DialogResult.No:
                    // CALL EVENT
                    break;
            }