2
我有一個usercontrol(UC1),它根據用戶想要顯示的內容在設計時改變方面。usercontrol在設計時加入另一個用戶控件
- 一個普通按鈕彈出一個窗口,用戶控件UC2(窗口僅在運行時示出)
- 的UC2在UC1直接託管(常規按鈕然後未示出)
由於我想在這兩種情況下使用相同的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)在設計師顯示託管表單時正常運行。 – 2011-04-28 16:50:07