2009-10-23 3 views
1

저는이 레이아웃을 가지고 있습니다 :UserControl 내에서 WebBrowser 컨트롤에 어떻게 액세스합니까?

패널 안에있는 UserControl. 패널이 Form1 안에 있습니다.

웹 브라우저는 또 다른 패널은 Form1의 내부에도 있습니다.

그래서 :

   Form1 
Panel1     Panel2 
MyUserControl   TheWebBrowser 

어떻게을 MyUserControl withing에에서, Panel2 내 웹 브라우저의 URL을 설정할 수 있습니다?

나는 이런 식으로 시도했지만 잘 작동하지 않습니다.

this.Parent.Parent.Controls["panel2"].Controls["webBrowser1"] 

답변

0

UserControl에 속성 종속성을 만드는 것을 고려 했습니까? 이렇게하면 사용자 정의 컨트롤은 WebBrowser 컨트롤에 대한 참조 만 있으면 해당 컨트롤의 위치를 ​​알 필요가 없습니다.

이렇게하면 주 양식이 연결을 담당하고 부모 양식에 불쾌한 결합을 피할 수 있습니다.

0

비즈니스 계층을 비즈니스 계층에 추가 할 수 있습니다. 그런 다음 비즈니스 계층 개체를 생성해야합니다.이 개체는 작동해야하는 컨트롤에 대한 참조를 캐시 할 수 있으며 논리를 호출해야하는 개체에 비즈니스 계층 개체의 참조를 캐시 할 수 있습니다. WebBrowser 컨트롤을 새 클래스 (예 : aximp에서 생성 된 클래스)로 바꿔야 할 때 유용합니다. 무언가가 변경 될 때 GetDocument() -> UpdateAllViews를 사용하여 다른 뷰를 업데이트 할 수있는 MFC의 doc/view/frame과 거의 비슷한 캐시 된 참조에 액세스하여 비즈니스 논리 객체를 호출 할 수 있습니다.

관련 문제