0
在我的Windows窗體應用程序中,我添加了一個SplitContainer控件。在SplitContainer的panel1中,我有一個ListBox,在SpliContainer的panel2中,我有兩個按鈕。在ListBox的鼠標移動上,我想選擇ListBox項目。下面是我的代碼來選擇列表框項目,如何恢復和最大化沒有閃爍和佈局重疊的表單?
private void ListBox1_MouseMove(object sender, MouseEventArgs e)
{
int i;
this.SuspendLayout();
for (i = 0; i < (this.listBox1.Items.Count); i++)
{
if (this.listBox1.GetItemRectangle(i).Contains(this.listBox1.PointToClient(MousePosition)))
{
this.listBox1.SelectedIndex = i;
return;
}
}
this.ResumeLayout(true);
}
的SuspendLayout()和ResumeLayout()被稱爲以避免面板的重疊的形式加載時。
如果我恢復窗體,鼠標移動到列表框並再次最大化窗體然後SplitContainer panel2中的按鈕不能正確加載。如果我刪除掛起和ResumeLayout恢復和最大化工作正常。我提到這個 stackoverflow query link。
ListBox不具有Resize和Dock屬性。所以我不應該調用SuspendLayout和ResumeLayout?任何人都會建議在哪裏使用SuspendLayout/ResumeLayout以及哪裏不是?