TPageControl的疑惑

springchina 2012-08-22 08:41:37
TFrom1上放置一个TPageControl,这个TPageControl上有两个TabSheet,设计的时候,ActivePage = TabSheet1.
TabSheet2上有一个TListView1,TListView1里有两个TListItem。
现在的情况是:
Form1 = new TForm1(Application);
ShowMessage(Form1->TListView->Items->Count);
显示的结果是0.
但是我设ActivePage = TabSheet2后,显示的结果就是2。

百思不得其解,这个是为什么啊?
大家行行好吧,折腾一天了,脑袋都快噜秃了!
...全文
139 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
springchina 2012-08-22
  • 打赏
  • 举报
回复
回复于:2012-08-22 22:36:40
你还是show之后再判断吧
-------------------------------------------------
嗯嗯,就这么干了!多谢!
springchina 2012-08-22
  • 打赏
  • 举报
回复
回复于:2012-08-22 22:33:20
的确有这个问题,貌似是设计时放入的数据,在构造的时候没有放入,只有显示后才会载入

楼主干脆就运行时载入数据来绕过这个问题吧
-----------------------------------------------------------------
我现在就这么做了!只能显示后再去做别的事情了!
缘中人 2012-08-22
  • 打赏
  • 举报
回复
你还是show之后再判断吧
LinuxCard 2012-08-22
  • 打赏
  • 举报
回复
的确有这个问题,貌似是设计时放入的数据,在构造的时候没有放入,只有显示后才会载入

楼主干脆就运行时载入数据来绕过这个问题吧
springchina 2012-08-22
  • 打赏
  • 举报
回复
最新的验证情况如下:
ActivePage=TabSheet1的情形下:
Form1 = new TForm1(Application);
Form1->Show();
ShowMessage(Form1->TListView1->Items->Count);
结果为0,错误的结果。Form1->Show()的位置对结果没有影响,结果依旧是0.

ActivePage=TabSheet2的情形下:
Form1 = new TForm1(Application);
Form1->Show();
ShowMessage(Form1->TListView1->Items->Count);
结果为2,正确的结果。注意:Form1->Show()必须在ShowMessage(Form1->TListView1->Items->Count);前执行才能得到正确的结果。否则结果为0.
dataxdata 2012-08-22
  • 打赏
  • 举报
回复
估计ListView内部对行和列的处理是不一样的,列的数量相对固定,而行的数量可能会在很大的范围内动态变化,所以会采用不同的处理策略
springchina 2012-08-22
  • 打赏
  • 举报
回复
回复于:2012-08-22 21:46:05
可能PageControl中TabSheet上的控件的数据是在Active的时候才加载上去,所以一开始在非Active的时候数据为空
----------------------------------------------------------------------------------
奇怪的是:ShowMessage(Form1->TListView->Columns->Count)是正确的!
springchina 2012-08-22
  • 打赏
  • 举报
回复

#1楼 得分:0回复于:2012-08-22 21:27:24
Form1->TListView->Items->Count?
ListView1吧
------------------------------------------------
是Form1->TListView1->Items->Count!笔误!

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

#2楼 得分:0回复于:2012-08-22 21:30:47
ListView1的两列是怎么添加的
右键listview,有2个菜单
Columns Editor
Itemss Editor,用这个
-----------------------------------------------------
就是用的这个添加的!
dataxdata 2012-08-22
  • 打赏
  • 举报
回复
可能PageControl中TabSheet上的控件的数据是在Active的时候才加载上去,所以一开始在非Active的时候数据为空
缘中人 2012-08-22
  • 打赏
  • 举报
回复
ListView1的两列是怎么添加的
右键listview,有2个菜单
Columns Editor
Itemss Editor,用这个
缘中人 2012-08-22
  • 打赏
  • 举报
回复
Form1->TListView->Items->Count?
ListView1吧

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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