2010-12-01 4 views
2

.NET Windows 응용 프로그램이 있습니다.DataGridview에서 단일 행 캡처

나는 약간의 행이있는 DataGridView을 가지고 있습니다. 사용자가 행을 편집 할 수 있도록 버튼이 포함 된 열을 추가했습니다. 그러면 새 양식/대화 상자 - 편집 양식이 나타납니다.

// Add a CellClick handler to handle clicks in the button column. 
dgv.CellClick += new DataGridViewCellEventHandler(dgv_CellClick); 

이이 발사 코드 :

private void dgv_CellClick(object sender, DataGridViewCellEventArgs e) 
{  
    if (e.ColumnIndex == buttonCell) 
    { 
     // Get the id number 
     int number = Convert.ToInt32(dgv.Rows[e.RowIndex].Cells[0].Value); 


     EditForm edit = new EditForm(number); 
     edit.ShowDialog();     
    } 
} 

문제 (제대로)

내 편집 양식이 표시됩니다. 나는 나의 변화를 만들고, 모양을 닫는다. 그런 다음 다시로드됩니다! 그리드에서 같은 수의 행에 대해이 작업을 수행합니다. 예. DataGrid의 각 행에 대해 위 코드를 한 번 실행합니다.

어떻게 방지 할 수 있습니까? 보다 우아한 솔루션이 있습니까?

답변

2

CellClick 이벤트를 두 번 이상 등록하지 않았는지 확인하십시오.

하는 즉, 당신이 한 번 이상이 코드를 호출하지 않는 것을 (각 시간처럼 당신이 당신의 DGV에 행을 추가) :

dgv.CellClick += new DataGridViewCellEventHandler(dgv_CellClick); 
+0

이 체크 아웃거야, 어떻게했다 전이게 그립 네요?! 도와 줘서 고마워. 이봐, 너무 바보 같아. – Matt

0

셀 내용을 클릭 할시기를 결정하려면 CellContentClick 이벤트를 처리하십시오.

대신 dgv.CellContentClick을 사용하여 문제가 해결되는지 확인해보십시오. datagridview.cellclick event

+0

덕분에 내가 세상에 오 – Matt

관련 문제