码迷,mamicode.com
首页 > 其他好文 > 详细

百思不得骑姐的问题——难道是控件的bug?

时间:2014-09-04 20:46:50      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:winform   style   blog   http   color   ar   for   2014   div   

直接进入主题,困惑了一下午了。

要实现的功能:

bubuko.com,布布扣winform的checkedlistbox控件

点击  “全部”  就都选上,可是如果点击过快就会出现如上现象,下面选项未显示选中。

代码如下:

 private void clbSaleDept_SelectedIndexChanged(object sender, EventArgs e)
        {
            CheckedListBox cb = sender as CheckedListBox;

            if (cb == null || cb.SelectedIndex < 0)
            {
                return;
            }
            //如果单击“全选”
            if (cb.SelectedIndex == 0)
            {
                for (int i = 1; i < cb.Items.Count; i++)
                {
                    Console.WriteLine(cb.GetItemChecked(0));
                    cb.SetItemChecked(i, cb.GetItemChecked(0));
                }
            }
            else
            {
                if (!cb.GetItemChecked(cb.SelectedIndex))
                {//当其它选项有一项未选中,则取消“全选”
                    cb.SetItemChecked(0, false);
                }
                else if (!cb.GetItemChecked(0) && cb.SelectedItems.Count >= (cb.Items.Count - 1))
                {//当其它所有选中,则选中“全选”
                    cb.SetItemChecked(0, true);
                }
            }
        }


个人在代码里面看不出什么问题。

经过写日志得出:在快速点击“全选”按钮时,并不是每次都进入该事件。

百思不得骑姐的问题——难道是控件的bug?

标签:winform   style   blog   http   color   ar   for   2014   div   

原文地址:http://www.cnblogs.com/yangleiWPF/p/3956768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!