감사합니다.제어 목록에서 컨트롤을 삭제하고 읽을 수 없습니다.
메인 패널의 컨트롤을 전환하는 버튼이있는 C# .NET 폼이 있습니다. Visual Studio 2012 및 고급 설치 관리자로 업그레이드 할 때까지 아무런 문제가 없었습니다. 타겟 프레임 워크는 4.5가 아닌 4.0입니다.
컨트롤을 변경하면 새 컨트롤을 추가하기 전에 이전 컨트롤을 삭제하고 제거하지만 아직 컨트롤이 없으면 (즉, 첫 번째 컨트롤이로드 될 때) 오류가 발생합니다.
원래 루프가 컬렉션을 수정하는 동안 반복에 대해 무언가와 충돌 했으므로 이제는 컨트롤을 제거한 후 제거하려고합니다.
이 오류는 다음과 같습니다. 인덱스 0이 범위를 벗어났습니다.
이 모든 것이 dev 컴퓨터에서 정상적으로 작동하며 이전의 기본 제공 VS 설치 프로그램을 사용하여 문제가되지 않았습니다.
아이디어가 있으십니까? 4.0 프레임 워크 문제? 누락 된 참조가 배포되지 않습니까?
감사합니다.
panelMain.SuspendLayout();
int control_count = panelMain.Controls.Count;
if (control_count > 1) {
Log.Write("More than one control found in main panel.", ErrorLevel.Error);
}
if (control_count > 0) {
Control current_ctrl = panelMain.Controls[0];
current_ctrl.Dispose();
panelMain.Controls.Remove(current_ctrl);
}
//foreach (Control ctrl in panelMain.Controls) {
// ctrl.Dispose();
// panelMain.Controls.Remove(ctrl);
//}