动态创建textbox的问题?

aniude 2005-11-17 08:57:22

想在一个表单里面实现这样的功能,点击组合框的时候动态根据组合框的数量生成相应数据的textbox
在事件里面写 thisForm.AddObject("text1","TextBox")老是提示已存在相同名字的对象,请问要怎么办?????
...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aniude 2005-11-18
  • 打赏
  • 举报
回复
就是说textbox是VFP控件的名字,我们在表单里面怎么用程序动态生成textbox?
aniude 2005-11-18
  • 打赏
  • 举报
回复
不是,我在表单里面添加了一个textbox的文本框,但是我想用语句添加对象的时候会这样了,不知道为什么?
zsjiaming 2005-11-18
  • 打赏
  • 举报
回复
thisForm.AddObject("text1","TextBox")老是提示已存在相同名字的对象
------------------------------------\__说明你的表单里面已经有text1这个控件名.
你只要用一另外不会在表单中出现的控制名就可以了.
如:
thisform.addobject("mytest01","textbox")
给控件以固定的名字,是为后面用到此控件时方便.

还有一种是给以下系统产生的唯一名称:
lcName=Sys(2015)
thisForm.AddObject(lcname,"TextBox")

还可以这样:
For i=1 To 10000
objname='thisform.mytext'+Alltrim(Str(i))
If Type(objname)=='U' &&是否有同名控件,没有则可以用这个名称
Exit
Endif
Endfor
objname=Justext(objname) &&产生一个mytext?(?从1-10000)的名称,这个控件名没出现在表单中

Thisform.AddObject(objname,'TEXTBOX')
十豆三 2005-11-18
  • 打赏
  • 举报
回复
更严格一些:

IF VARTYPE(THISFORM.TextNew1)<>'O'
ThisForm.AddObject("TextNew1","TextBox")
ThisForm.TextNew1.Top=50
ThisForm.TextNew1.Left=50
ThisForm.TextNew1.Visible=.T.
ENDIF
十豆三 2005-11-18
  • 打赏
  • 举报
回复
说明你的表单上已经有了名为TEXT1的控件,所以换个名字就可以:
ThisForm.AddObject("TextNew1","TextBox")
ThisForm.TextNew1.Top=50
ThisForm.TextNew1.Left=50
ThisForm.TextNew1.Visible=.T.
十豆三 2005-11-18
  • 打赏
  • 举报
回复
click事件
是按钮的吗?如果是改为thisFORM.addObject("xxxx","textbox")
aniude 2005-11-18
  • 打赏
  • 举报
回复
郁闷,问题是新建form里面什么东西都没有,只有一个form
然后在click事件里面写this.addObject("xxxx","textbox")
也提示同样的错误,“同名的成员对象已经存在"为什么?
cxmcxm 2005-11-17
  • 打赏
  • 举报
回复
控件是你自己加上的,名字是你给的,
属性:
thisform.controlcount 为表单的控件数
thisform.controls 为表单上的控件数组,
添加之前查查你给名字的控件是否存在,如存在,则用别的名,加一次之后就不用再加。

2,723

社区成员

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

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