2017-12-15 4 views
0

this.Enabled = false 때마다 MDI 자식 양식이 다른 모든 양식의 뒤로 이동합니다.C# WinForms 양식을 사용하지 않도록 설정하면 MDI 양식이 뒤로 이동합니다

양식을 사용하지 않는 이유는 검색을 수행하고 사용자가 응답을 기다려야하기 때문입니다.

이 동작을 어떻게 변경합니까?

나는 그 후에 바로 Activate()BringToFront()을 시도했다. 양식을 앞쪽으로 가져 오지만 초점을주지는 않습니다.

+2

이렇게하는 것은 좋지 않습니다. 왜 진도 막대 또는 다른 종류의 애니메이션이있는 모달 폼을 만들고 검색이 끝날 때 닫으십시오. 취소 버튼을 추가하여 – GuidoG

+0

그게 더 좋은 방법 일 수도 있습니다 ... –

+0

... 그러나 이것을 구현하는 방법에 대해 완전히 확신하지 못합니다. 해결책 1. 이것이 MDI 형식이므로, 예를 들어. 'progressBarForm.ShowDialog (this)'는 다른 MDI 자식 폼과의 상호 작용을 방지합니다. 해결 방법 2. 폼에 그려진 투명 패널에 그림을 표시하고 싶을 때,이 패널 뒤의 컨트롤과 사용자가 상호 작용하지 못하도록하고 싶습니다. 나는 이것을하기 위해'Enabled = false' 이외의 메소드를 모른다. 드로잉 보드로 돌아 가기 ... –

답변

1

따라서 MDI 자식 폼이 검색 또는 긴 작업을 수행하는 동안 disabled (숨김이 아님)이되도록하려고합니다. 그리고 여전히 사용할 수 있어야합니다.
그리고 다른 모든 MDI 자식 폼을 계속 사용할 수도 있습니다.

  • 넣어 충전 도킹 있는 패널 =에이 MDI 자식 폼의 모든 컨트롤 :

    다음은이 일을 한 가지 방법입니다.

  • 검색하는 동안이 panel.Enabled = false를 넣고 양식 자체는 그대로 둡니다.

양식을 계속 사용할 수 있지만 검색을 완료해야 모든 컨트롤에 액세스 할 수 있습니다. 그리고 다른 모든 형식도 여전히 사용할 수 있습니다.

+0

이것이 어떻게 작동하는지 알 수 있지만이 프로젝트에는 50 가지가 넘는 양식이 있습니다. 나는 빠른 해결책을 원했다. –

+0

확실히 당신은 BaseForm을 만들고 다른 모든 50 개의 폼은 그 기본 폼으로부터 상속받습니다. 기본 폼에 이것을 구현하고 – GuidoG

+0

을 수행하십시오.이 질문과 같은 원리입니다. 대답은 내가 의견입니다 https://stackoverflow.com/questions/47813972/add-click-event-listener-for-any-control-in-entire-solution – GuidoG

관련 문제