CheckedListBox扩展方法代码
生活随笔
收集整理的這篇文章主要介紹了
CheckedListBox扩展方法代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Code
?1public?static?class?CheckedListBox擴展
?2{
?3????/**////?<summary>
?4????///?全部選定所有項
?5????///?</summary>
?6????public?static?void?全部選定(this?CheckedListBox?c)
?7????{
?8????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
?9????????{
10????????????c.SetItemChecked(i,?true);
11????????}
12????}
13
14????/**////?<summary>
15????///?全部取消選定所有項
16????///?</summary>
17????public?static?void?全部取消選定(this?CheckedListBox?c)
18????{
19????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
20????????{
21????????????c.SetItemChecked(i,?false);
22????????}
23????}
24
25????/**////?<summary>
26????///?反向選定所有項
27????///?</summary>
28????public?static?void?反向選定(this?CheckedListBox?c)
29????{
30????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
31????????{
32????????????c.SetItemChecked(i,?!c.GetItemChecked(i));
33????????}
34????}
35
36????/**////?<summary>
37????///?根據選定狀態列表中的值,逐一設定各列表項的選定狀態
38????///?</summary>
39????///?<param?name="選定狀態列表">包含所有列表項對應的選定狀態的列表</param>
40????public?static?void?自設選定(this?CheckedListBox?c,?IEnumerable<bool>?選定狀態列表)
41????{
42????????int?x?=?0;
43????????foreach?(bool?f?in?選定狀態列表)
44????????{
45????????????c.SetItemChecked(x++,?f);
46????????}
47????}
48
49????/**////?<summary>
50????///?根據選定項索引列表的值,設定指定索引處列表項的選定狀態為已選定,其它處均設為未選定
51????///?</summary>
52????///?<param?name="選定項索引列表">包含選定列表項的索引位置的列表</param>
53????public?static?void?自設選定(this?CheckedListBox?c,?IEnumerable<int>?選定項索引列表)
54????{
55????????c.全部取消選定();
56????????foreach?(int?f?in?選定項索引列表)
57????????{
58????????????c.SetItemChecked(f,?true);
59????????}
60????}
61
62????/**////?<summary>
63????///?將一個字典作為數據源加載到CheckedListBox,字典的鍵即為列表項的值,字典的值用以指示列表項是否被選定
64????///?</summary>
65????///?<typeparam?name="類型">自定義類型</typeparam>
66????///?<param?name="數據源">數據源</param>
67????public?static?void?數據源設定<類型>(this?CheckedListBox?c,?Dictionary<類型,?bool>?數據源)
68????{
69????????var?l=數據源.Values.ToArray();
70????????c.DataSource?=?null;
71????????c.DataSource?=?數據源.Keys.ToList();
72????????c.自設選定(數據源.Values);
73????}
74
75????/**////?<summary>
76????///?將CheckedListBox的列表項及其選定狀態作為字典返回,字典的鍵即為列表項的值,字典的值用以指示列表項是否被選定
77????///?</summary>
78????///?<typeparam?name="類型">自定義類型</typeparam>
79????///?<returns>字典</returns>
80????public?static?Dictionary<類型,?bool>?數據源獲取<類型>(this?CheckedListBox?c)
81????{
82????????var?l?=?new?Dictionary<類型,?bool>();
83????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
84????????{
85????????????l.Add((類型)c.Items[i],?c.GetItemChecked(i));
86????????}
87????????return?l;
88????}
89}
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>());
}
?1public?static?class?CheckedListBox擴展
?2{
?3????/**////?<summary>
?4????///?全部選定所有項
?5????///?</summary>
?6????public?static?void?全部選定(this?CheckedListBox?c)
?7????{
?8????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
?9????????{
10????????????c.SetItemChecked(i,?true);
11????????}
12????}
13
14????/**////?<summary>
15????///?全部取消選定所有項
16????///?</summary>
17????public?static?void?全部取消選定(this?CheckedListBox?c)
18????{
19????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
20????????{
21????????????c.SetItemChecked(i,?false);
22????????}
23????}
24
25????/**////?<summary>
26????///?反向選定所有項
27????///?</summary>
28????public?static?void?反向選定(this?CheckedListBox?c)
29????{
30????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
31????????{
32????????????c.SetItemChecked(i,?!c.GetItemChecked(i));
33????????}
34????}
35
36????/**////?<summary>
37????///?根據選定狀態列表中的值,逐一設定各列表項的選定狀態
38????///?</summary>
39????///?<param?name="選定狀態列表">包含所有列表項對應的選定狀態的列表</param>
40????public?static?void?自設選定(this?CheckedListBox?c,?IEnumerable<bool>?選定狀態列表)
41????{
42????????int?x?=?0;
43????????foreach?(bool?f?in?選定狀態列表)
44????????{
45????????????c.SetItemChecked(x++,?f);
46????????}
47????}
48
49????/**////?<summary>
50????///?根據選定項索引列表的值,設定指定索引處列表項的選定狀態為已選定,其它處均設為未選定
51????///?</summary>
52????///?<param?name="選定項索引列表">包含選定列表項的索引位置的列表</param>
53????public?static?void?自設選定(this?CheckedListBox?c,?IEnumerable<int>?選定項索引列表)
54????{
55????????c.全部取消選定();
56????????foreach?(int?f?in?選定項索引列表)
57????????{
58????????????c.SetItemChecked(f,?true);
59????????}
60????}
61
62????/**////?<summary>
63????///?將一個字典作為數據源加載到CheckedListBox,字典的鍵即為列表項的值,字典的值用以指示列表項是否被選定
64????///?</summary>
65????///?<typeparam?name="類型">自定義類型</typeparam>
66????///?<param?name="數據源">數據源</param>
67????public?static?void?數據源設定<類型>(this?CheckedListBox?c,?Dictionary<類型,?bool>?數據源)
68????{
69????????var?l=數據源.Values.ToArray();
70????????c.DataSource?=?null;
71????????c.DataSource?=?數據源.Keys.ToList();
72????????c.自設選定(數據源.Values);
73????}
74
75????/**////?<summary>
76????///?將CheckedListBox的列表項及其選定狀態作為字典返回,字典的鍵即為列表項的值,字典的值用以指示列表項是否被選定
77????///?</summary>
78????///?<typeparam?name="類型">自定義類型</typeparam>
79????///?<returns>字典</returns>
80????public?static?Dictionary<類型,?bool>?數據源獲取<類型>(this?CheckedListBox?c)
81????{
82????????var?l?=?new?Dictionary<類型,?bool>();
83????????for?(int?i?=?0;?i?<?c.Items.Count;?i++)
84????????{
85????????????l.Add((類型)c.Items[i],?c.GetItemChecked(i));
86????????}
87????????return?l;
88????}
89}
?
該擴展提供了控制、加載、導出CheckedListBox選定狀態的一些實用方法。
?
用于測試加載及導出的代碼片段:
Codeprivate?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版本
轉載于:https://www.cnblogs.com/SkyD/archive/2009/05/05/1450127.html
總結
以上是生活随笔為你收集整理的CheckedListBox扩展方法代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分页解决方案 —— GridView +
- 下一篇: windows硬盘GPT分区怎么转换为M