ITPub博客

首页 > Linux操作系统 > Linux操作系统 > CheckBoxList扩展方法代码

CheckBoxList扩展方法代码

原创 Linux操作系统 作者:斯克迪亚 时间:2009-05-05 17:57:01 0 删除 编辑

public static class CheckedListBox扩展

{

    ///

    /// 全部选定所有项

    ///

    public static void 全部选定(this CheckedListBox c)

    {

        for (int i = 0; i < c.Items.Count; i++)

        {

            c.SetItemChecked(i, true);

        }

    }

 

    ///

    /// 全部取消选定所有项

    ///

    public static void 全部取消选定(this CheckedListBox c)

    {

        for (int i = 0; i < c.Items.Count; i++)

        {

            c.SetItemChecked(i, false);

        }

    }

 

    ///

    /// 反向选定所有项

    ///

    public static void 反向选定(this CheckedListBox c)

    {

        for (int i = 0; i < c.Items.Count; i++)

        {

            c.SetItemChecked(i, !c.GetItemChecked(i));

        }

    }

 

    ///

    /// 根据选定状态列表中的值,逐一设定各列表项的选定状态

    ///

    /// 选定状态列表">包含所有列表项对应的选定状态的列表

    public static void 自设选定(this CheckedListBox c, IEnumerable<bool> 选定状态列表)

    {

        int x = 0;

        foreach (bool f in 选定状态列表)

        {

            c.SetItemChecked(x++, f);

        }

    }

 

    ///

    /// 根据选定项索引列表的值,设定指定索引处列表项的选定状态为已选定,其它处均设为未选定

    ///

    /// 选定项索引列表">包含选定列表项的索引位置的列表

    public static void 自设选定(this CheckedListBox c, IEnumerable<int> 选定项索引列表)

    {

        c.全部取消选定();

        foreach (int f in 选定项索引列表)

        {

            c.SetItemChecked(f, true);

        }

    }

 

    ///

    /// 将一个字典作为数据源加载到CheckedListBox,字典的键即为列表项的值,字典的值用以指示列表项是否被选定

    ///

    /// 类型">自定义类型

    /// 数据源">数据源

    public static void 数据源设定<类型>(this CheckedListBox c, Dictionary<类型, bool> 数据源)

    {

        var l=数据源.Values.ToArray();

        c.数据源设定(数据源.Keys.ToList());

        c.自设选定(数据源.Values);

    }

 

    ///

    /// CheckedListBox的列表项及其选定状态作为字典返回,字典的键即为列表项的值,字典的值用以指示列表项是否被选定

    ///

    /// 类型">自定义类型

    /// 字典

    public static Dictionary<类型, bool> 数据源获取<类型>(this CheckedListBox c)

    {

        var l = new Dictionary<类型, bool>();

        for (int i = 0; i < c.Items.Count; i++)

        {

            l.Add((类型)c.Items[i], c.GetItemChecked(i));

        }

        return l;

    }

}

该扩展提供了控制、加载、导出CheckBoxList选定状态的一些实用方法。


用于测试加载及导出的代码片段:

private void button2_Click(object sender, EventArgs e)

{

    var l = new Dictionary<string, bool>();

    l.Add("a", true);

    l.Add("q", false);

    l.Add("w", true);

    l.Add("e", false);

    checkedListBox1.数据源设定<string>(l);

}

 

private void button3_Click(object sender, EventArgs e)

{

    checkedListBox2.数据源设定<string>(checkedListBox1.数据源获取<string>());

}

下载代码片段

下载本文的PDF版本



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10474909/viewspace-592662/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-08-14

最新文章