사용자가 표시하려고하는대로 디자인 타임에 aspect를 변경하는 usercontrol (UC1)이 있습니다.usercontrol 디자인 타임에 프로그래밍 방식으로 다른 사용자 컨트롤 추가
- UserControl을 UC2 (창이 런타임에만 도시 됨)으로 창을 팝업 정규 버튼
- 직접 (통상 버튼이어서 도시되지 않음)
이후 UC1에서 주최 UC2 두 상황 모두에서 동일한 UC2 인스턴스를 사용하고 싶습니다. UC1과 양식간에 소유권을 양도합니다.
public UC1()
{
_uc2 = new UC2();
}
public bool DisplayModeSimple
{
get { return _displayModeSimple; }
set
{
_displayModeSimple = value;
if (_displayModeSimple)
{
// ... Verify if _uc2 is already in Controls...
Controls.Remove (_uc2);
uiButton.Visible = true;
}
else
{
// ... Verify that _uc2 is not in Controls ...
Controls.Add (_uc2);
uiButton.Visible = false;
}
}
}
private void HandleButtonClick (object sender, EventArgs e)
{
// Not called if DisplayModeSimple=false since button is hidden...
using (var form = new PopupForm (_uc2))
{
form.ShowDialog (this);
}
}
디자인 모드와 런타임 모드에서 모두 잘 작동합니다.
디자인 모드에서 디스플레이 모드를 변경하면 UC1이 올바르게 작동합니다.
그러나 런타임시 UC2의 컨트롤을 클릭 할 수 있습니다. 그런 다음 UC1 호스팅 양식을 닫았다가 다시 열면 모든 것이 정상으로 돌아갑니다. 즉, UC2의 모든 컨트롤을 "클릭"할 수 없습니다.
좋아, 이미 디자인 모드 테스트에 대해 알고 있지만이 플래그를 테스트하고 UC2를 "디자인 모드"로 설정할 수있는 곳이 없기 때문에 도움이되지 않습니다. 또한 UC1 (UC2가 표시된 상태)은 호스팅 양식이 설계자에게 표시 될 때 정상적으로 작동합니다. –