如何同时获得ListView中数据所在的行和列

opacity 2009-03-21 11:32:28
任意点击listview中显示的一个数据,如何能同时得到所点击数据所在的行值和列值呢?
非常感谢~~
...全文
207 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
landaship 2012-06-04
  • 打赏
  • 举报
回复
为什么要登录才可以看见,这太小气了吧
ccrun.com 2009-03-21
  • 打赏
  • 举报
回复
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ListView1->RowSelect = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ListView1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
TListView *lv = (TListView *)Sender;
if (!lv) return;
TListItem *pItem = lv->GetItemAt(X, Y);

if (pItem)
{
int nCellLeft(0), nColIndex(0);
TPoint pt(X, Y);
TRect rct = pItem->DisplayRect(drSelectBounds);

for (int i=0; i<lv->Columns->Count; i++)
{
rct.Left = nCellLeft;
rct.Right = nCellLeft + lv->Columns->Items[i]->Width;

if (PtInRect(rct, pt))
{
nColIndex = i + 1;
break;
}
nCellLeft += lv->Columns->Items[i]->Width;
}
ShowMessage(String().sprintf("点击了第 %d 行,第 %d 列", pItem->Index + 1, nColIndex));
}
}
opacity 2009-03-21
  • 打赏
  • 举报
回复
谢谢:)

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧