加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 选择ListBox Winform控件中的所有项目

发布时间:2020-12-16 01:53:40 所属栏目:百科 来源:网络整理
导读:我正在尝试选择ListBox中的所有项目并为此目的制作此扩展方法: public static void SetSelectedAllItems(this ListBox ctl) { for (int i = 0; i ctl.Items.Count; i++) { ctl.SetSelected(i,true); } } 问题是如果我在ListBox中有很多项目,那么完成这个任
我正在尝试选择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,但这只会影响控件的布局事件.当您想要更改控件相对于其他控件的位置时,可以使用这对方法,例如设置Size,Location,Anchor或Dock属性时.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读