我要做一个权限分配,仿照SQL Server 2000企业管理器的角色权限分配使用CheckedListBox做了一个前面是复选框,后面是选项的控件,但是问题是我点击两下选项的时候前面的复选框就会被选中,我不想要这种效果,SQL里面是点击选项,只是选择,你要是想选中复选框的话就必须对复选框控件进行操作,我看了一下,当第二次click()事件以后,就会跳转到ItemChecked()事件上去,我是不是要取消click()中对ItemChecked()的委托,但是又不知道怎样取消委托,还是要采取别的什么方法呢?

解决方案 »

  1.   

    最简单的方法是使用一个标志位,也就是一个Boolean变量。当第二次click时候,设置给变量为true。然后在ItemClick函数中判断变量是否为true.
      

  2.   

    怎么才能知道是第二次click呢
      

  3.   

    //试试在两个事件中处理一下.
    private void checkedListBox1_MouseDoubleClick(object sender, MouseEventArgs e)
            {
                //MessageBox.Show("2");
            }        private void checkedListBox1_MouseClick(object sender, MouseEventArgs e)
            {
                //MessageBox.Show(e.Clicks.ToString());
            }
      

  4.   

    我试过,它会自己跳到ItemChecked()上