2009-02-03 2 views
0

나는 여러 "작업자"폼이있는 C# 응용 프로그램이 있습니다. 이 양식에는 양식로드시 데이터베이스 옆에 '추가'단추가있는 수많은 콤보 상자가 있습니다. 사용자가 추가 버튼을 클릭하면 관리 양식이 열리고 사용자가 해당 값을 데이터베이스에 추가 할 수 있습니다.자식 폼이 닫힌 후 새로 고침 드롭 다운

예를 들어, 콤보 박스는 거리 유형 목록 일 수 있습니다. "드라이브"는 데이터베이스의 거리 유형 테이블에 없으므로 사용자가 추가하려고합니다. 추가 버튼을 클릭하면 관리자 양식이로드되어 거리 유형에 '드라이브'값을 추가 할 수 있습니다. 관리자 양식이 닫히면 직원 양식으로 돌아가서 콤보 상자를 다시 채우고 싶습니다.

가장 좋은 방법은 무엇입니까?

답변

0

목록을 관리 할 수있는 양식이 만들어지면 양식의 Closed 이벤트에 대한 이벤트 처리기를 추가합니다. 이 이벤트 핸들러에서 목록의 데이터 소스를 다시로드 한 다음 콤보 상자에 리 바인드합니다.

0

양식을 모달 형식으로 작성하는 방법 중 하나는 this.Parent를 사용하고 거기에서 콤보 상자를 업데이트하는 public 메서드에 액세스 할 수 있습니다.

1

감사합니다. 나는 ShowDialog를 사용했고 훌륭하게 작동했다.

관리 adminForm = 새 관리(); adminForm.tcAdministration.SelectedIndex = 1; adminForm.ExistingCaseNumber = this.ExistingCaseNumber; adminForm.ShowDialog();

this.PopulateComboBoxes();

+0

quick-n-dirty 방법은 때때로 적절합니다. MVP/MVC/SupervisingController (Presenter)는 쉽게 리팩토링되는 것이 아닙니다. – JMD

0

처음부터 사용하지 않았다면 설정하는 데 더 많은 시간이 걸리지 만 적절한 MVP [~] 일을하는 경우 해당 자식 "추가"양식이 모델에서 업데이트를 트리거해야합니다. 당신의 컨트롤러는 뷰의 해당 부분을 업데이트함으로써 반응합니다.

[~] 마틴 파울러는 Model-View-Presenter라는 용어를 사용하지 않았지만 여전히 감독관과 감독 발표자를 대치하고 있습니다.

몇 참조 :

0
또한 수

는 수행 를 Form1의 FRM = (Form1에) Application.OpenForms [ "Form1을"]; 이렇게하면 다른 양식에서 양식을 업데이트 할 수 있습니다.

관련 문제