Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바스크립트날짜형식
- 이행은이미다른
- javaScriptError
- speechtoText
- 자바스크립트날짜
- 장고웹프로젝트
- 안드로이드
- 장고
- forof문
- 청소년복지론
- Android
- sqlite
- PostgreSQL
- speechAPI
- 이행은이미다른테이블에속해있습니다
- 오류종류
- 장고프로젝트
- 다른테이블에속해있습니다
- cmd명령어
- 자바스크립트forinforof차이
- 자바스크립트for문
- 개발
- Python
- R데이터분석
- webkitrecognition
- 자바스크립트날짜get
- 사례관리
- 파이썬
- 자바스크립트수학
- 장고웹
Archives
- Today
- Total
EMDI는 지금도 개발중
C# : FlexGrid 셀 데이터 숫자만 또는 문자만 가능하게 설정 How to insert Cell value only Letter or Number in FlexGrid at C# 본문
언어/C#
C# : FlexGrid 셀 데이터 숫자만 또는 문자만 가능하게 설정 How to insert Cell value only Letter or Number in FlexGrid at C#
EMDI 2019. 5. 30. 16:25이번 글에서는 FlexGird의 셀(Cell)에 내용을 입력할 때, 그 입력하는 내용이 숫자만 또는 숫자와 문자만 입력되도록 설정해주는 방법에 대해 써보도록 하겠습니다.
- FlexGrid의 셀 안에 특수문자 또는 문자를 막는 방법은 여러가지가 있습니다.
- 정규식을 통해 숫자 또는 문자만 가능하도록 설정하기
- System.Char에 있는 옵션을 통해 숫자 또는 문자만 가능하도록 설정하기
둘다 셀 안에 내용을 입력하려고 할 때 막을 수 있지만 저는 개인적으로 system에 있는 Char를 사용하는 것을 선호합니다. 정규식으로 설정하면 뭔가 매끄러워 보이지 않더군요ㅠㅠ
그럼 System.Char를 이용해서 숫자 또는 문자만 되고 나머지는 막는 방법에 대해 설명하도록 하겠습니다. 우선 그리드에 이벤트를 걸어줘야하는데 저는 FlexGridV2_KeyPressEdit 이벤트 핸들러를 사용하였습니다. 해당 KeyPressEdit의 이벤트 핸들러를 그리드 속성에 찾아보시려고 한다면 보이지 않으실겁니다. 이 이벤트 핸들러는 소스상에서 추가할 수 있으며, 속성에는 KeyPressEdit이 아닌 KeyPress만 보입니다.
grid1.FlexGridV2.KeyPressEdit += new KeyPressEditEventHandler(FlexGridV2_KeyPressEdit);
grid1.KeyPress += new KeyPressEventHandler(grid1_KeyPress);
KeyPress는 KeyPressEdit과 KeyPress 두가지로 나눕니다. 둘의 차이는 음... 정확하게는 저도 잘 모르겠는데 KeyPress에는 e.Col, e.Row 과 같은 그리드 내의 Column 위치와 Row 위치를 알 수 없고 Edit에서는 해당 e.Col과 e.Row가 있습니다.
private void FlexGridV2_KeyPressEdit(object sender, KeyPressEditEventArgs e)
{
if (e.Col < 0 || e.Row < grid1.Rows.Fixed)
return;
string szColName, szValue;
bool bValid;
szColName = grid1.Cols[e.Col].Name;
szValue = grid1[e.Row, szColName].ToString();
if (szColName == "연락처")
{
// 숫자만 입력할 수 있도록 제한한다.
if (!(char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back)))
{
e.Handled = true;
}
}
else if (szColName == "사용자명")
{
// 문자 또는 숫자가능
if (!(char.IsLetterOrDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back)))
{
e.Handled = true;
}
}
}
위의 소스와 같이 char.IsDigit 또는 char.IsLetterOrDigit 등을 사용하여 원하지 않는 문자를 막을 수 있습니다.
'언어 > C#' 카테고리의 다른 글
Comments