簡體   English   中英

選擇ListBox Winform控件中的所有項目

[英]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();

但這似乎沒有做任何事情。

調用BeginUpdateEndUpdate方法以防止在設置該控件的屬性時繪制/呈現控件。

這是修改后的代碼:

public static void SetSelectedAllItems(this ListBox ctl)
{
    ctl.BeginUpdate();

    for (int i = 0; i < ctl.Items.Count; i++)
    {
        ctl.SetSelected(i, true);
    }

    ctl.EndUpdate();
}

你說你已經嘗試過調用SuspendLayoutResumeLayout ,但這只會影響控件的布局事件。 當您想要更改控件相對於其他控件的位置時,可以使用這對方法,例如設置SizeLocationAnchorDock屬性時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM