• 怎样正确处理WinForm中Listview的ItemCheck事件


    我很少写具体的对象应用心得,这次尝试一下。

    WinForm中Listview的ItemCheck事件,例子如下:
      private void lvwTables_ItemCheck(object sender, ItemCheckEventArgs e)
    {
    Check();
    }

    private void Check()
    {
       for (int i = 0; i < lvwTables.CheckedItems.Count; i++)
      {
        //Some biz here //这里检测不到选中的项目的正确状态
      }
    }

    因为ItemCheck事件是在Check的一刻触发的,lvwTables.CheckItems中还没有添加。

    我这样处理:

      private void lvwTables_ItemCheck(object sender, ItemCheckEventArgs e)
      {
       Check(e.Index, e.NewValue);
      }

      private void Check(int CurrentItem, CheckState State)
      {
       for (int i = 0; i < lvwTables.CheckedItems.Count; i++)
       {
        if (i != CurrentItem)
         //some biz here //能正确检测
       }
       if (CurrentItem != -1 && State == CheckState.Checked)
        //some biz here  //这里补一下
      }

    为什么不直接在事件中biz?因为我有很多个地方要调用一样的代码,所以封装成函数。

    方法有点笨。
  • 相关阅读:
    tomcat 无法clean 的bug
    Open Type vs Open resource
    Cannot change version of project facet Dynamic Web Module to 2.4.
    股权稀释
    Java的各种打包方式
    记忆
    【转】给女儿的信
    买房费用
    工作职场
    装修-水电改造
  • 原文地址:https://www.cnblogs.com/unruledboy/p/ListViewItemCheck.html
Copyright © 2020-2023  润新知