我有兩個winforms。我稱父母和孩子的形式。在父窗體上,我有一個檢查編輯控件。我想在選中時顯示子表單(m_chkEdit.checked = true) 它的檢查和取消選中狀態都存儲在我的註冊表中。當父窗體加載時,檢查編輯控件的狀態會在之前更新它的狀態。如果檢查編輯控件的檢查更改事件發生時顯示一個winform時出現邏輯錯誤?
好的,父窗體有兩種方法。 OnLoad方法從註冊表中加載並更新m_chkEdit的狀態。當我檢查它時,m_chkEdit_CheckedChanged事件方法會調用子窗體(m_chkEdit.Checked = true)。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
RegistryData.ReadCheckEditStatus = m_chkEdit.Checked ? RegistryData.EnumCheckEdit.ReadCheckEditYes : RegistryData.EnumCheckEdit.ReadCheckEditNo;
}
private void m_chkEdit_CheckedChanged(object sender, EventArgs e)
{
if (m_chkEdit.Checked)
{
ChildForm form = new ChildForm();
form.Show();
}
}
這裏是我的問題:如果檢查編輯控件的狀態是先前檢查,時加載父窗體子窗體將顯示。當我檢查checkEdit控件時,我只想要子窗體顯示。
我不知道checkEdit有另一個事件可以解決問題嗎?
你能給我一些建議嗎? 感謝提前。
我不會這樣。使用標誌是更好的模式。 – user2126375
您的解決方案解決了這個問題。非常感謝! –