2013-01-16 1 views
0

이스케이프 키를 누를 때 유효성 검사에서 오류가 발생합니다. 즉, DataGridview 행에서 텍스트를 삭제하는 대신 텍스트를 새 행에 추가했습니다. 그 행을 저장하고 싶지 않고 양식을 닫고 싶지 않습니다. 간단히 키보드에서 Esc 키를 누르면 텍스트가 삭제됩니다. 이 코드는 DataGridviewrow 유효성 검사 이벤트에서 사용하고 있습니다.DataGridview의 행에서 이스케이프 키를 누른 다음 텍스트를 해당 행에서 삭제해야하는 경우

if (string.IsNullOrEmpty(dgTests.CurrentRow.Cells["Column1"].Value.ToString()) && !string.IsNullOrEmpty(dgTests.CurrentRow.Cells["Column2"].Value.ToString())) 
{ 
    dgTests.Rows[e.RowIndex].ErrorText = "Column1 should not be empty"; 
    e.Cancel = true; 
} 
+0

이벤트가이 코드는 ... 상주하는 것이 도움이 될 것입니다 무엇을 보여주십시오 어떤 코드 나 제안을 다른 사람에게 인도 할 때 – MethodMan

+4

이 유효성 검사는 행에 오류를 발생시킬 텍스트가없는 경우에 표시됩니다. 당신은 텍스트를 삭제하고 왜 당신이 오류가 궁금해? 내가 놓친 게 있니? – RhysW

+0

datagridviews는 속한 모든 행에 대한 내부 목록을 가지고 있습니다. 저장하고 싶지 않고 공백으로두기를 원하는 경우 esc 키를 눌러 선택한 행의 색인을 찾은 다음 내부 목록에서 행을 제거하는 이유 ? 그렇게하면 유효성 검사가 바뀌어야 할 필요가없는 행을 없앨 수 있습니까? – RhysW

답변

-1

DataGridView를 누르고 이스케이프 키는 내가 볼 수 원하는 때 코드 아래 거짓

된 DataGridView 속성에서

키를 누를 때 쓰기

if (Keys.Escape.ToString() == "Escape") 
      gvExpireDate.Visible = false; 

private void DatagridView_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     //MessageBox.Show(Keys.Escape.ToString()); 
     if (Keys.Escape.ToString() == "Escape") 
      gvExpireDate.Visible = false; 
     //if(e.KeyChar == Keys.Escape) 

    } 
관련 문제