net windows 양식 응용 프로그램. 나는 콤보 상자와 텍스트 상자 및 닫기 창 단추가 있습니다. 이제 콤보 상자 나 텍스트 상자를 변경하고 창 닫기 버튼을 클릭하면 수정 사항을 저장하라는 메시지가 표시됩니다. 변경 사항이없는 경우 (사용자가 응용 프로그램을 실행하면 수정되지 않습니다) 사용자에게 메시지를 표시해서는 안됩니다. 직접 닫아야합니다. 어떻게해야합니까?닫기 전에 확인
닫기 전에 확인
답변
한 가지 방법은 폼의 멤버 변수로 _changed 또는 그와 비슷한 bool 플래그를 유지하는 것입니다. 그런 다음 TextBox의 TextChanged 이벤트와 ComboBox의 SelectedIndexChanged 이벤트에서 _changed = true로 설정하면됩니다.
그런 다음 양식이 닫히기 직전에 _changed가 true 인 경우 사용자에게 메시지를 표시합니다.
편집 : 양식에 많은 TexBox 컨트롤이 경우 동일한의 TextChanged 이벤트 핸들러에 그들 모두를 연결 할 수
. 그런 다음 TextBox의 텍스트가 변경 되더라도 _changed는 true로 설정됩니다.
그런 다음 여러 ComboBox 컨트롤과 하나의 SelectedIndexChanged 이벤트를 사용하여 동일한 작업을 수행합니다.
실제로 많은 컨트롤을 수동으로 연결하지 않고 양식의 Controls 컬렉션을 반복적으로 루프하는 메서드를 작성하고 각 컨트롤 유형을 적절한 이벤트 처리기에 연결합니다. 그런 다음 새로운 컨트롤을 추가 할 때마다 자동으로 처리되므로 시간과 유지 관리를 많이 절약하기 위해이 방법을 하나 이상의 형식으로 재사용 할 수 있습니다.
쉽게 할 수있는 일은 dirty
회원을 양식에 추가하는 것입니다.이 회원은 변경 될 때마다 true
으로 설정하고 양식을 닫을 때마다 확인합니다.
양식의 OnClosing 메서드를 재정의하거나 Closing 이벤트에 연결하십시오. 핸들러에서 수정 사항을 확인하고 사용자에게 메시지 상자를 표시합니다. 양식을 닫지 않으려면 반환하기 전에 e.Cancel 속성을 false로 설정하십시오.
- 1. 닫기 닫기 전에 변경 내용 저장 닫기
- 2. QCoreApplication을 닫기 전에 정리하십시오.
- 3. 자바 스크립트 확인 대화 상자 닫기 브라우저 창 전에
- 4. 브라우저의 확인 상자 닫기
- 5. vim : 여러 개의 탭을 닫기 전에 확인하십시오.
- 6. 브라우저 창을 닫기 전에 뭔가를하십시오.
- 7. 처리 전에 확인 작업!
- 8. 캔버스 제출 전에 확인
- 9. 닫기()를 호출하기 전에 파일에 문자열을 쓰는
- 10. BeautifulSoup을 사용하여 본문을 닫기 전에 요소를 삽입하십시오.
- 11. load jquery 닫기 전에 jquery colorbox를 닫습니다.
- 12. Android : 다른 대화창을 표시하기 전에 대화 닫기
- 13. 브라우저 창 닫기 전에 URL 호출
- 14. rs = nothing을 설정하면 양식을 닫기 전에 유용합니까?
- 15. 할당 전에 동등성을 확인 하시겠습니까?
- 16. 삽입 전에 확인 레코드가 있습니다
- 17. 모든 페이지로드 전에 세션 확인?
- 18. 삽입하기 전에 기존 레코드 확인
- 19. 자바로 창 닫기 및 닫기
- 20. 데이터를 입력하기 전에 데이터베이스에서 중복 확인
- 21. Asp.Net 업로드하기 전에 파일 크기 확인
- 22. 확인 요소가 Cufon을 적용하기 전에 존재 함
- 23. jquery 플러그인 시작 전에 이미지로드 여부 확인
- 24. 생성하기 전에 유일한 값이 있는지 확인
- 25. iPhone SDK : 처리하기 전에 XML을 확인 하시겠습니까?
- 26. 삽입하기 전에 sqlite에서 중복 확인 (코어 데이터)
- 27. 반올림하기 전에 통화 필드 제약 확인 수행
- 28. Zend_Mail을 사용하여 보내기 전에 스팸 확인
- 29. MySQL에 저장하기 전에 확인 및 스트리핑
- 30. 표시하기 전에 Crystal Report에 데이터가 없는지 확인
감사합니다 ... 그 일 .. 나는 또 다른 의심이있다. 여기에는 텍스트 상자와 콤보 박스 만 있고, 텍스트 상자의 콤보와 TextChanged 이벤트의 SelectedIndexChanged에서 _changed를 true로 만들 것입니다. 더 많은 통제가 있다면 어떨까요? 모든 컨트롤에서 _changed를 true로 설정해야합니까 아니면 해당 컨트롤의 컨트롤에 변경 사항이있을 때 적용 할 수있는 옵션이 있습니까? 제 말은 양식에 적용 할 수 있습니다. 즉, 변경된 사항이있는 경우 _changed는 true 여야합니다. – saeed
귀하의 추가 질문에 따라 답변을 편집했습니다. 내 생각이 가장 도움이된다고 생각하는 투표 방법은? ;) –