如何得到table中哪一行被选中了?
如上所示,我的目的是想这样的。用户点击table中的某一行,我就把该行加亮并设为可选(在palm中这两个是不同的),如果用户再点击remove按钮后,我就删掉加亮的那行。
问题是palm中好像并没有直接判断哪一行是加亮的函数。
与该过程相关的函数有三个
1:TblSetSelection(tblP, row, column) // 设置行为row,列为column的item为选中。
2: TblSelectItem(tblP,row,column) // 加亮行为row,列为column的item
3: TblGetSelection(tblP,&row,&column)
第三个函数是用来取得当前选中的item的行列值,同时该函数的返回值可以用来表示该item是否被加亮。
看起来似乎用这三个函数可以实现我要的功能。
case tblSelectEvent:
handled = true;
rowNum = eventP->data.tblSelect.row;
// 设为选中
TblSetSelection(tblP,rowNum,0);
EditPlaylistTableInit(frmP); // 会调用TblDrawTable()
// 加亮
TblUnhighlightSelection(tblP);
TblSelectItem(tblP, rowNum, 0);
break;
case ctlSelectEvent:
switch(eventP->data.ctlSelect.controlID){
case EditPlaylistRemoveButton:
if(!TblGetSelection(tblP,&rowNum,&columnNum));
break;
DeleteSongFromPlaylist(gEditDatabase,gEditPlaylistCursor+rowNum);
EditPlaylistTableInit(frmP);
handled = true;
break;
结果就是每次都会在
if(!TblGetSelection(tblP,&rowNum,&columnNum));
后得到返回值为false,可是明明我看到返回的rowNum,columnNum所对应的item是加亮的呀?
这到底怎么回事,使我用的不对吗?
望高手指正!