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

List index out of bounds(0)解决办法

2012-03-07 
List index out of bounds(0)昨天遇到了这么一个问题,网上也查看很多类似问题,但现在还不知道怎么解决,望

List index out of bounds(0)
昨天遇到了这么一个问题,网上也查看很多类似问题,但现在还不知道怎么解决,望高手指点一下。
我首先在主窗口上放置上一个类似PageControl的第三方控件用来打开多个标签网页;然后又在其中的一个标签页对应的窗口上又放置和上面一样的控件,在其中也用来打开多个标签,相当于一个标签页的嵌套。
出问题的是下面的第二行:(在主窗口一样的代码中没有出现问题,是在嵌入的其中的一个中出现的)。

 Form4:=TForm4.Create(nil);
 Form4.Parent:=Form3.RzPageControl1.Pages[index1];
 Form4.Align:=alclient;
 Form4.ManualDock(Form3.RzPageControl1.Pages[index1]);//将窗口融合
 Form4.BorderStyle:=bsnone;
 Form4.Show;

[解决办法]
List index out of bounds就是索引超出了list的范围
index1 超出了RzPageControl1.Pages的范围,LZ自己检查下index1 的值,还有RzPageControl1.Pages.count
[解决办法]
Form3.RzPageControl1.Pages[0] 你这个是空的啊. 没有创建吧?


Delphi(Pascal) code
if (index1 <0 ) or (index > RzPageControl1.Pages.count ) then exit
[解决办法]
跟踪调试,加上下面代码
Delphi(Pascal) code
 Form4:=TForm4.Create(nil);//加上这一行,index1不能大于Form3.RzPageControl1的页数-1,不能小于0showmessage(inttosr(Form3.RzPageControl1.pagecount) + 'index:' + inttostr(index1)); Form4.Parent:=Form3.RzPageControl1.Pages[index1]; Form4.Align:=alclient; Form4.ManualDock(Form3.RzPageControl1.Pages[index1]);//将窗口融合 Form4.BorderStyle:=bsnone; Form4.Show;
[解决办法]
探讨
高手指点下哈?按说不应该的,我调试时前面已经可以创建页了:
newpage:=TRZTabSheet.Create(self);
newpage.Caption:=scaption;
newpage.PageControl:=RzPageControl2;
RzPageControl2.ActivePage:=newpage;

为什么还会出现这种问题呢?经过调试Form3.R……

[解决办法]
那那个代码,新增的tab是给RzPageControl2的,而你访问的是RzPageControl1
[解决办法]
探讨

那那个代码,新增的tab是给RzPageControl2的,而你访问的是RzPageControl1

热点排行