WinForms TabControl의 선택 해제 이벤트에서 탭 변경을 처리하고 있습니다. 그러나 어떤 경우에는 내가 전환하기 전에 클릭 한 탭을 삭제합니다. 이하려고 있기 때문에TabControl의 선택 이벤트를 취소하는 방법
시나리오는
현재 내가 탭 2 탭을 클릭 탭 1 에있어 내가 탭 1과 탭 2 이 1 선택 해제 이벤트 충돌의 OnPaint에서 탭 컬렉션에서 탭 2를 제거 더 이상 존재하지 않는 탭으로 이동하십시오. (ArgumentOutOfRangeException). 그것은 선택 이벤트를 치기 전에 충돌합니다.
내가 더 이상 존재하지 않는 탭만 취소하기 때문에 선택 취소시 탭 카운트가 변경되었는지 확인하고 싶지 않습니다.
도움을 주시면 감사하겠습니다.
private void TabControl_Deselecting(object sender, TabControlCancelEventArgs) {
DoSomeWork();
}
내가 클릭 한 탭을 DoSomeWork가 삭제한다고 가정합니다. 이동하려는 탭을 삭제했는지 어떻게 알 수 있습니까? 내 마음에 제공 가능한 솔루션의
질문을 조금 더 명확히하고 원하는 결과가 무엇인지 물어보십시오. 여기서 원하는 것을 이해하는 데 어려움이 있습니다. – ImGreg
사용자 인터페이스를 재고해야합니다. 그것은 너무 혼란스럽고 사용하기가 어려워 보입니다. – BoltBait
탭 제거는 3 또는 4 개의 함수가 깊습니다. 비즈니스 객체에 대한 컨트롤을 '바인딩'하고 모든 로직을 비즈니스 객체에 넣고 있습니까? 이 GUI가 작동하는 방식은 실제로 직관적이지 못합니다. –