郁闷死了!一个小问题,总是解决不了?下个星期就要交了!

normalnotebook 2003-05-18 09:02:54
我做了一个选课的小东东,有2个LIST框,从左边双击,右边一个LIST框显示所单击的内容,当要删除时,再在右边一个LIST框中双击移去。这时问题就出现了,当我试图再从左边选课时,总是把右边的最后一个替换掉,然后在往下增加。
部分源码如下:
m=thisform.list2.listcount+1
thisform.list2.addlistitem(alltrim(d[1]),m,1) //d[1]为所要加的内容
请问错在什么地方呀?急啊!就就我呀?
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiolig 2003-05-18
  • 打赏
  • 举报
回复
修正:
WITH ThisForm.List2
m = .ListCount + 1
.AddItem(AllTrim(d[1]),m)
m = .IndexToItemID(m)
......
ENDWITH
xiolig 2003-05-18
  • 打赏
  • 举报
回复
很可能是 AddItem 方法的BUG:总是插入新记录,nIndex的作用成了插入位置。
WITH ThisForm.List2
.AddItem(AllTrim(d[1]))
m = .IndexToItemID(.ListCount)
.AddListItem(AllTrim(d[2]),m,2)
.AddListItem(STR(d[4]),m,3)
.AddListItem(Alltrim(d[3]),m,4)
ENDWITH
流星尔 2003-05-18
  • 打赏
  • 举报
回复
thisform.list2.additem(alltrim(d[1])) //d[1]为所要加的内容
normalnotebook 2003-05-18
  • 打赏
  • 举报
回复
打错了,上面的additem()都应为addlistitem()
normalnotebook 2003-05-18
  • 打赏
  • 举报
回复
可能我没有把问题说清楚,我要在LIST2中一行显示课程号,课程名,教师,学分,只能用ADDLISTITEM()属性
dimension d[7]
d[1]=课程基本信息.Counoid
d[2]=课程基本信息.couname
d[3]=课程基本信息.teacher
d[4]=课程基本信息.cscore
d[5]=课程基本信息.time1
d[6]=课程基本信息.time2
d[7]=课程基本信息.time3
cs=cs+d[4]
m=reccount()
thisform.label18.caption=alltrim(str(cs))+" 分"
thisform.label29.caption=alltrim(str(m))+" 门课"
if empty(thisform.list1.value)=.f.
thisform.list2.additem(alltrim(d[1]),m,1)
thisform.list2.additem(alltrim(d[2]),m,2)
thisform.list2.additem(str(d[4]),m,3)
thisform.list2.additem(alltrim(d[3]),m,4)
//然后在写进数据库
else
messagebox()
endif
xiolig 2003-05-18
  • 打赏
  • 举报
回复
请弄清LIST控件以下两个方法的差别:
Control.AddItem(cItem [, nIndex] [, nColumn])
Control.AddListItem(cItem [, nItemID] [, nColumn])
nIndex: 序号,从1到ListCount,参考ListIndex属性、IndexToItemID方法;
nItemID:标识号,要求唯一性,参考ListItemID属性、ItemIDToIndex方法。
因此,最简单的处理办法就是将AddListItem换成AddItem。
xiolig 2003-05-18
  • 打赏
  • 举报
回复
还可以直接引用 NewItemID 属性代替上述程序中的 IndexToItemID 方法。

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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