[英]Selecting all items in a ListBox Winform Control
我正在嘗試選擇ListBox中的所有項目並為此目的制作此擴展方法:
public static void SetSelectedAllItems(this ListBox ctl)
{
for (int i = 0; i < ctl.Items.Count; i++)
{
ctl.SetSelected(i, true);
}
}
問題是如果我在ListBox中有很多項目,那么完成這個任務需要很長時間,我可以看看ListBox如何自動向下滾動並選擇項目。
有沒有辦法臨時暫停控件的更新,以便任務完成得更快? 我試過用:
ctl.SuspendLayout();
for (int i = 0; i < ctl.Items.Count; i++)
...
ctl.ResumeLayout();
但這似乎沒有做任何事情。
調用BeginUpdate
和EndUpdate
方法以防止在設置該控件的屬性時繪制/呈現控件。
這是修改后的代碼:
public static void SetSelectedAllItems(this ListBox ctl)
{
ctl.BeginUpdate();
for (int i = 0; i < ctl.Items.Count; i++)
{
ctl.SetSelected(i, true);
}
ctl.EndUpdate();
}
你說你已經嘗試過調用SuspendLayout
和ResumeLayout
,但這只會影響控件的布局事件。 當您想要更改控件相對於其他控件的位置時,可以使用這對方法,例如設置Size
, Location
, Anchor
或Dock
屬性時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.