안녕하세요
코딩연습생입니다
C# Winform에서 데이터그리드뷰를 사용해서 이런저런(?) 프로그램을 구현하실때
데이터그리드뷰에 생성한 콤보박스가 꼭 두번씩 클릭해야 리스트를 보여주는 현상을 보신적 있으실거 같은데요
저만 그런건지는 잘 모르겠지만...
제가 파악해본결과 데이터 그리드뷰의 콤보박스 Cell이 활성화 된 이후 드롭다운이 발생할때 리스트를 보여주기 때문에
활성화 1번 클릭 -> 드롭다운 1번 클릭 = 2번클릭
이렇게 되는거 같습니다 저는 한번에 클릭해서 처리하고 싶은데 말이죠
그래서 이번 포스팅에서 그걸 해결 할 수 있는 팁을 알려드릴려고 합니다
제가 할려는 방법 이외에 더 쉬운 방법이나 정보가 있으면 공유 부탁드립니다ㅎ
일단 현상 부터 한번 보시죠
1) 제가 만든 데이터 그리드뷰에 이렇게 연속적인 콤보박스가 두개 존재합니다
- 1개는 공백이 들어가 있는 콤보박스
- 1개는 Y/N이 표시되는 콤보박스
2) 마우스를 한번 클릭 했을때의 모습입니다
- 클릭한 콤보박스 영역이 선택은 되었지만 리스트는 드릴다운이 되지 않았습니다
3) 활성화된 콤보박스를 마우스로 재 클릭 했을때 모습 입니다
- 이제서야 드릴다운이 되면서 리스트가 보입니다
자 이제 해결하기 위해서 그리드 뷰의 CellClick 이벤트를 생성하겠습니다
1) 디자인화면에서 데이터그리드 이벤트중 CellClick 이벤트를 다음과 같이 생성합니다
2) 소스코드를 작성합니다
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
var datagridview = sender as DataGridView;
if (e.ColumnIndex == 11 || e.ColumnIndex == 9)
{
datagridview.BeginEdit(true);
((ComboBox)datagridview.EditingControl).DroppedDown = true;
}
}
3) 디버깅 이후 실행해서 테스트 합니다
- 활성화와 드릴다운이 동시에 진행 됩니다
'코딩정보 > C#' 카테고리의 다른 글
[C#] 데이터 그리드뷰 붙여넣기 만들기 (0) | 2020.07.21 |
---|---|
[C#] FTP를 이용한 파일 다운로드 구현하기!! (0) | 2020.06.16 |
[C#] 엑셀 Cells 사용시 속도 문제 해결하기 #2 (4) | 2020.05.20 |
[C#]컨트롤이 데이터 바인딩된 경우에는 datagridview의 행 컬렉션에 프로그래밍 방식으로 행을 추가할 수 없습니다 (0) | 2020.05.11 |
[C#] 'Microsoft.ACE.OLEDB.12.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다 (3) | 2020.05.07 |