菜鸟紧急求助!为什么清空ListBox的内容后,里面总是有一个空行呢?在线等待!(25分)

  • 主题发起人 主题发起人 虚雷
  • 开始时间 开始时间

虚雷

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ListBox1.items.clear清空了Listbox里的内容,但为什么每次里面总是会留有一个空行呢?
怎么把这个空行也删掉???!!
(引起的问题是:
程序一开始时,我发现里面也有一个空行,但用鼠标点击它“无事件”发生,
当我增加一些内容到这个listbox里后,然后清空,这时再点击那个空行,就有“有事件”发生。
因为我有一个功能是:当选中listbox中某一项后会触发一个事件。
而程序第一次运行时,虽点中了那个空行却没有触发事件,但为什么我增加内容,又清空内容后,
再点那个空行,就会触发事件了呢?)
顺便问一下,Listbox1.items.clear和listbox1.clear都可以清空,它们有什么不同呢?
只有这么点分了,还请各位帮助我这个初学者啊。
很急!!谢谢。
 
两个一样的。
是不是空用 items.count 判断
 
什么意思?到底怎样判断啊?
现在问题关键就是选择了空行以后,事件会触发,我想要选择空行后,事件不触发,或者根本就
不产生空行。
奇怪的就是为什么第一次运行时,选不中空行,而后来可以选中空行(选中后颜色被加深)
 
if(listbox1.items.count>0)and(listbox1.itemindex>-1)and(listbox1.itemindex<listbox1.items.count)then
写你要做的事件,肯定不会出事。
 
就是你用ITEMS.COUNT来看一看是不是真的有一行
应该不会有的
 
不好意思,我不懂你们说的意思。
用items.count怎么判断啊?
另外我还设了一个按钮,用来删除在ListBox里被选中的单个文件,我发现一个个删除的话,
到最后也没有那个空行了,那能不能用删除单个的语句来清空Listbox的所有内容呢?
ListBox1.Items.Delete(ListBox1.ItemIndex);
 
我只是通过以下代码打开一件文件到Listbox中去:
if OpenDialog1.Execute then
begin
for i:=0 to OpenDialog1.Files.Count-1do
begin
str:=ExtractFileName(OpenDialog1.Files);
if Listbox1.items.indexof(str)<0 then
Listbox1.items.add(str);
end;
end;
清空后就有个可以被选中的空行了?
 
我再把问题讲清楚一点。
通过上面的代码打开了一些文件名到ListBox中,此时清空Listbox中所有内容,发现有一个可以
选中的空行。此时重新通过上面代码又打开一些文件名到Listbox中,ListBox中的第一行即为空行,
从第二行开始才是重新打开的文件名。
不知这问题到底该如何解决?还望高手指点。
 
好象删不掉的。listbox就这样
 
用clear
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
str:string;
begin
if OpenDialog1.Execute then
begin
for i:=0 to OpenDialog1.Files.Count-1do
begin
str:=ExtractFileName(OpenDialog1.Files);
if Listbox1.items.indexof(str)<0 then
Listbox1.items.add(str);
end;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
listbox1.Clear;
end;
 
to :lcl_003
我是这样做的啊。
只要先打开一次文件到LISTBOX,再清空的话,就会有个可以被选中的空行,
并且再次打开文件到LISTBOX的话,空行就显示在第一行了,新打开的文件名开始重第二行开始
往下排。
 
我用的是D7,测试了一下,空行是有,但是没有你说 Click事件会激发
 
可是我的没有问题啊
 
我也不知道是怎么回事。
1Fuyi,你的那个空行能选中吗?
(选中后成高亮显示状态的)
我的就可以选中?
 
我的选不中,在看看别的地方的代码吧,说不定别的地方改了呢
 
多人接受答案了。
 
后退
顶部