2012-11-14 4 views
0

vb.net을 사용하여 winforms에 코드를 작성하고 특정 사용자 비즈니스 규칙 오류 조건이 존재할 때 DataGridview가 포커스를 잃지 않도록하려고합니다. 오류가 발생하면 코드 자체가 포커스를 다시 설정하는 이탈 이벤트에 있습니다. 그러나 양식의 단추를 계속 클릭 할 수 있기 때문에 완전히 작동하지 않는 것 같습니다. 누구든지 datagridview에 초점을 유지하는 방법을 알고 있고 사용자가 datagridview를 입력 할 때 버튼을 비활성화하지 않고 버튼을 클릭하지 못하도록합니까? 사용자 지정 datagridview 컨트롤을 writting하고 datagridview 컨트롤에 포커스를 유지하고 폼의 단추를 클릭 할 수 없게하는 범용 루틴을 원합니다.Winforms DataGridView의 포커스 손실을 방지합니다.

답변

0

한 컨트롤에서 다른 컨트롤로 포커스를 전환하는 동안 발생하는 일련의 이벤트가 있습니다. 그 내용은 in this msdn link입니다.

비즈니스 규칙을 해당 패턴에 맞출 수있는 방법을 찾는 것이 좋습니다. 이는 컨트롤에 대한 유효성 검사 후크의 목적입니다. 특히 자신의 컨트롤을 만드는 경우 이러한 이벤트를 사용하여 유효성 검사 논리 중 일부를 캡슐화 할 수도 있습니다.

0

폼이 유효성 검사 오류에 포커스를 변경하지 않도록하려면 폼의 AutoValidate 속성을 EnablePreventFocusChange로 설정하십시오. http://msdn.microsoft.com/en-us/library/system.windows.forms.autovalidate(v=vs.100).aspx.

유효성 검사 오류가있을 때 단추가 전송되지 않도록하려면 단추의 CausesValidation 속성을 true로 설정하십시오. http://msdn.microsoft.com/en-us/library/system.windows.forms.control.causesvalidation(v=vs.110).aspx

관련 문제