成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

listview中checkbox選擇的一個技巧

2010-08-28 10:50:01來源:西部e網作者:

提問:

我在listview中加入了幾個checkbox項:  
  All  
  Users  
  Groups  
  Computers  
   
  我要實現當勾選了"All"時,其它的項也全勾選,而只要"users/groups/computers"中任何一項沒有勾選時,"All"項也不勾選.  
   
  我在listview的ItemCheck事件中加了類似下面的代碼,并實現了功能:  
  if   (e.NewValue   ==   CheckState.Checked)  
                          {  
                                          //...如果勾選了"ALL"  
                                          foreach   (ListViewItem   taskItem   in   m_tasksList.Items)  
                                          {  
                                                  if   ((((Task)taskItem.Tag).TaskObject   !=   Task.TaskObjectEnum.All)   &&   (taskItem.Checked   ==   false))  
                                                  {  
                                                          taskItem.Checked   =   true;   //******  
                                                  }  
                                          }  
                                  }  
                          }  
   
  現在大問題來了:   當我選了"All"時,程序運行到:taskItem.Checked   =   true;這個時候又會再次觸發(fā)ListView的ItemCheck事件,而我的事件內有循環(huán).這樣,導致有時候程序崩潰.  
   
  請問有什么好的辦法來實現這樣的功能呀?感謝!

解答:

if   (e.NewValue   ==   CheckState.Checked)  
                          {  
                                          //...如果勾選了"ALL"  
   
                                          m_tasksList.ItemCheck   -=   new   EventHandler(m_tasksList_ItemCheck);//Add  
                                          foreach   (ListViewItem   taskItem   in   m_tasksList.Items)  
                                          {  
                                                  if   ((((Task)taskItem.Tag).TaskObject   !=   Task.TaskObjectEnum.All)   &&   (taskItem.Checked   ==   false))  
                                                  {  
                                                          taskItem.Checked   =   true;   //******  
                                                  }  
                                          }  
                                          m_tasksList.ItemCheck   +=   new   EventHandler(m_tasksList_ItemCheck);//Add  
   
                                  }  
                          }  

關鍵詞:C#
主站蜘蛛池模板: 南京市| 延安市| 葫芦岛市| 正蓝旗| 南开区| 临武县| 遂川县| 清水县| 从化市| 山东| 沙洋县| 万盛区| 伊金霍洛旗| 靖边县| 甘德县| 邳州市| 汨罗市| 南乐县| 湘乡市| 海盐县| 平利县| 林甸县| 南昌市| 澄江县| 华安县| 景东| 曲阜市| 上饶市| 确山县| 长寿区| 霍州市| 九寨沟县| 霍林郭勒市| 成都市| 夹江县| 阿克陶县| 定远县| 淅川县| 无极县| 正定县| 苍梧县|