• 本站域名:OceanCoder.cn 若您喜欢本站,请添加至收藏夹!
  • 网站少部分资源来源自网络,如有侵犯您的权益,请联系站长删除!
  • 本站所有文章,除特殊标明外,皆为本人原创,转载请注明出处,谢谢合作!
  • 本站所下载的资源,若无特殊说明,使用统一解压密码:oceancoder.cn
  • 本站已实现布局自适应,支持手机端、pad端访问,欢迎体验
  • 本站部分资源可通过微信公众号留言获取,欢迎体验

[C#]ListView单选模式的实现

C# OceanCoder 2017-10-14 1260 次浏览 0个评论

一、需求

使ListView实现单选模式

二、实现

1、ListView控件属性FullRowSelect设置为True

2、ListView控件属性MultiSelect设置为False

3、ListView控件属性CheckBoxes设置为True

4、为ListView添加ItemCheck事件,并在事件中调用如下方法

/// <summary>
        /// 报表列表框-单选模式的实现,列表框应关闭多选模式,放在事件_ItemCheck下
        /// </summary>
        /// <param name="lv"></param>
        /// <param name="e"></param>
        public static void ListViewSingleSelectedAndChecked(ListView lv, ItemCheckEventArgs e)
        {
            if (e.CurrentValue == CheckState.Unchecked)
            {
                int count = lv.Items.Count;
                ListViewItem item = lv.Items[e.Index];
                if (!item.Checked)
                {
                    for (int i = 0; i < count; i++)
                    {
                        if (i != e.Index)
                        {
                            ListViewItem item1 = lv.Items[i];
                            item1.Checked = false;
                            item1.Selected = false;
                        }
                        else { lv.Items[i].Selected = true; }
                    }
                }
            }
            if (e.CurrentValue == CheckState.Checked)
            {
                e.NewValue = CheckState.Unchecked;
                if (lv.Items[e.Index].Selected)
                {
                    lv.Items[e.Index].Selected = false;
                }
            }
        }

三、示例

        private void listView_1_ItemCheck(object sender, ItemCheckEventArgs e)
        {
           ListViewSingleSelectedAndChecked(listView_1, e);
        }


已有 1260 位网友参与,快来吐槽:

发表评论