首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

2012-05-07 
ListView中Items反选无动作ListView(带有Checkbox)显示文本文档,CheckBox2控件用于反选操作。问题1:鼠标选

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;
}
}
//---------------------------------------

热点排行