ListView中Items反选无动作解决办法

ListView中Items反选无动作
ListView(带有Checkbox)显示文本文档,CheckBox2控件用于反选操作。
问题1:鼠标选择ListView中某几项,每项前面的Checkbox也checked了。现在点击CheckBox2使其Checked,然后ListView中选中的项退出选中状态,未选中项进入选中状态。代码如下,不知何原因,原来选中的项没有退出选中状态,从而使得所有项前面的checkbox都处于checked状态。
代码如下:
C/C++ code

for(int i = 0; i < ListView1 -> Items -> Count; i++)
    {
    ListView1 -> MultiSelect = true;
    if(CheckBox2 -> Checked == true)
        {
        if(ListView1 -> Items -> Item[i] -> Checked == true)
            {
            ListView1 -> Items -> Item[i] -> Selected = false;
            ListView1 -> Items -> Item[i] -> Checked = false;
            }
        else
            ListView1 -> Items -> Item[i] -> Selected = true;
            ListView1 -> Items -> Item[i] -> Checked = true;
        }
    }


问题2:ListView中每项前面的checkbox被选中后,即checked状态,是不是意味着这一行(项)被选中呢?用代码表达我的意思就是:
C/C++ code

ListView1 -> Items -> Item[i] -> Selected = false; //表listview中某项(行)被选中
和
ListView1 -> Items -> Item[i] -> Checked = false; //表listview中某项前面的checkbox处于checked状态
意义一样吗?



这几个问题没有搞明白,请高手指点迷津,非常感谢!!!!
由于级别低,现在只能发最高分为30分的帖子,不过不要紧,结贴时还会加的。

------解决方案--------------------
ListView1 -> Items -> Item[i] -> Checked == true 

这样的用法不推荐, 因为是 bool 类型,所以直接 ListView1 -> Items -> Item[i] -> Checked 就行了

另外, 顶楼问题可以这样:

ListView1 -> Items -> Item[i] -> Checked = !ListView1 -> Items -> Item[i] -> Checked ;

------解决方案--------------------
ListView1 -> Items -> Item[i] -> Selected = false; //表listview中某项(行)被选中

ListView1 -> Items -> Item[i] -> Checked = false; //表listview中某项前面的checkbox处于checked状态
意义一样吗?



不一样, Checked 只是一个状态标志而已
------解决方案--------------------
在 ListView 的 OnClick 事件处理选中,
OnDblClick 处理去选中状态。


void __fastcall TForm1::ListView1Click(TObject *Sender)
{
if ( ListView1->Selected != NULL )
{
ListView1->Selected->Checked = true;
}
}
//---------------------------------------

void __fastcall TForm1::ListView1DblClick(TObject *Sender)
{
if ( ListView1->Selected != NULL )
{
ListView1->Selected->Checked = false;
}
}
//---------------------------------------