日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CheckedListBox扩展方法代码

發布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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}

?

該擴展提供了控制、加載、導出CheckedListBox選定狀態的一些實用方法。

?

用于測試加載及導出的代碼片段:

Code
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版本


轉載于:https://www.cnblogs.com/SkyD/archive/2009/05/05/1450127.html

總結

以上是生活随笔為你收集整理的CheckedListBox扩展方法代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。